Taylohtio/GeneralApi/GeneralApi.MOSS/Layouts/Taloyhtio/MDb/ExportBoardMembers.ashx.cs

53 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using GeneralApi.Core.Repositories;
using Microsoft.Practices.ServiceLocation;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Taloyhtio.GeneralApi.Core.Common;
using Taloyhtio.GeneralApi.Core.Services;
using Taloyhtio.GeneralApi.MOSS.Layouts.Taloyhtio.MDb.App_LocalResources;
namespace Taloyhtio.GeneralApi.MOSS
{
public class ExportBoardMembers : IHttpHandler
{
private const string TEMPLATE_FILE_NAME = "ExportAllBoardMembers.vm";
private const string BOARD_MEMBERS_PARAM = "boardMembers";
public void ProcessRequest(HttpContext context)
{
var currentWeb = SPContext.Current.Web;
if (!currentWeb.DoesUserHavePermissions(SPBasePermissions.ManageWeb))
{
SPUtility.TransferToErrorPage(ExportBoardMembers_ashx.NotAuthorized,
currentWeb.Title, currentWeb.Url);
}
var repository = ServiceLocator.Current.GetInstance<IBoardMemberRepository>();
var boardMembers = repository.GetAll();
var engine = ServiceLocator.Current.GetInstance<ITemplateEngine>();
string folder =
SPUtility.GetVersionedGenericSetupPath(@"TEMPLATE\LAYOUTS\Taloyhtio\MDb\Templates", 15);
string content = engine.Merge(TEMPLATE_FILE_NAME, folder,
new Pair<string, object>(BOARD_MEMBERS_PARAM, boardMembers));
context.Response.Clear();
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.Charset = "";
context.Response.AddHeader("content-disposition", "attachment; filename=AllBoardMembers.xls");
context.Response.Write(content);
context.Response.End();
}
public bool IsReusable
{
get { return true; }
}
}
}