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(); var boardMembers = repository.GetAll(); var engine = ServiceLocator.Current.GetInstance(); string folder = SPUtility.GetVersionedGenericSetupPath(@"TEMPLATE\LAYOUTS\Taloyhtio\MDb\Templates", 15); string content = engine.Merge(TEMPLATE_FILE_NAME, folder, new Pair(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; } } } }