コード例 #1
0
ファイル: excelresult.cs プロジェクト: linuxbender/mix-work
 public ExcelResult(IExcelInterceptor interceptor, IExcelSender sender, ExcelMessage excel, string viewName, string masterName, Encoding messageEncoding)
 {
     ViewName = viewName ?? ViewName;
     MasterName = masterName ?? MasterName;
     ExcelEncoding = messageEncoding;
     Excel = excel;
     ExcelSender = sender;
     _interceptor = interceptor;
 }
コード例 #2
0
ファイル: excelresult.cs プロジェクト: linuxbender/mix-work
 private void Deliver(ExcelMessage excel, bool async)
 {
     var excelContext = new ExcelSendingContext(excel);
     _interceptor.BeforeExcelSending(excelContext);
     if(excelContext.Cancel)
     {
         return;
     }
     if (async)
     {
         ExcelSender.SendAsync(excel, AsyncSendCompleted);
         return;
     }
     _interceptor.AfterExcelSend(excel);
 }
コード例 #3
0
ファイル: excelresult.cs プロジェクト: linuxbender/mix-work
 private void AsyncSendCompleted(ExcelMessage excel)
 {
     _interceptor.AfterExcelSend(excel);
     ExcelSender.Dispose();
 }
コード例 #4
0
ファイル: excelbase.cs プロジェクト: linuxbender/mix-work
        /// <summary>
        /// main method to run excel export
        /// </summary>
        /// <param name="viewName"></param>
        /// <param name="model"></param>
        /// <param name="masterName"></param>
        /// <returns></returns>
        public virtual ExcelResult Excel(string viewName, object model = null, string masterName = null)
        {
            if (viewName == null)
                throw new ArgumentNullException("viewName param ist null");

            var excel = new ExcelMessage();

            excel.ExcelName = ExcelName;
            excel.HttpContextBase = HttpContextBase;
            // set default value - if is not set in the controller
            excel.MimeType = MimeType ?? "application/ms-excel";
            // set default encoding - if is not set in the controller
            excel.ExcelEncoding = ExcelEncoding ?? System.Text.Encoding.UTF8;

            var result = new ExcelResult(this, ExcelSender, excel, viewName, masterName, ExcelEncoding);

            ViewData.Model = model;
            result.ViewData = ViewData;

            var routeData = new RouteData();
            //routeData.DataTokens["area"] = null;
            routeData.DataTokens["area"] = FindAreaName();

            routeData.Values["controller"] = GetType().Name.Replace("Controller",string.Empty);
            routeData.Values["action"] = viewName;

            var requestContext = new RequestContext(HttpContextBase, routeData);
            ControllerContext = new ControllerContext(requestContext, this);

            result.ExecuteResult(ControllerContext);
            return result;
        }
コード例 #5
0
ファイル: excelbase.cs プロジェクト: linuxbender/mix-work
 /// <summary>
 ///  Method call after sending Excel
 /// </summary>
 /// <param name="excel"></param>
 protected virtual void AfterExcelSend(ExcelMessage excel)
 {
 }
コード例 #6
0
ファイル: excelbase.cs プロジェクト: linuxbender/mix-work
 /// <summary>
 /// Implementation IExcelInterceptor
 /// </summary>
 /// <param name="excel"></param>
 void IExcelInterceptor.AfterExcelSend(ExcelMessage excel)
 {
     AfterExcelSend(excel);
 }