示例#1
0
        /// <summary>
        /// Generates a report using the default or custom report template with optional sort expression and filter applied to the dataset.
        /// </summary>
        /// <param name="args">A collection of parameters that control the report generation.</param>
        /// <returns>A binary array representing the report data.</returns>
        public static byte[] Execute(ReportArgs args)
        {
            ReportBase reportHandler = ((ReportBase)(ApplicationServices.CreateInstance("MyCompany.Handlers.Report")));
            Stream     output        = new MemoryStream();

            reportHandler.OutputStream = output;
            reportHandler.Arguments    = args;
            PageRequest request = new PageRequest();

            reportHandler.Request  = request;
            request.Controller     = args.Controller;
            request.View           = args.View;
            request.SortExpression = args.SortExpression;
            if (args.Filter != null)
            {
                DataViewExtender dve = new DataViewExtender();
                dve.AssignStartupFilter(args.Filter);
                request.Filter = ((List <string>)(dve.Properties["StartupFilter"])).ToArray();
            }
            ((IHttpHandler)(reportHandler)).ProcessRequest(HttpContext.Current);
            // return report data
            output.Position = 0;
            byte[] data = new byte[output.Length];
            output.Read(data, 0, data.Length);
            return(data);
        }
示例#2
0
 public IActionHandler CreateActionHandler()
 {
     if (string.IsNullOrEmpty(_actionHandlerType))
     {
         return(null);
     }
     else
     {
         var handler = ApplicationServices.CreateInstance(_actionHandlerType);
         InitializeHandler(handler);
         if (handler is BusinessRules)
         {
             ((BusinessRules)(handler)).Config = this;
         }
         return((IActionHandler)(handler));
     }
 }
示例#3
0
 public IDataFilter CreateDataFilter()
 {
     if (string.IsNullOrEmpty(_dataFilterType))
     {
         return(null);
     }
     else
     {
         var dataFilter = ApplicationServices.CreateInstance(_dataFilterType);
         InitializeHandler(dataFilter);
         if (typeof(IDataFilter).IsInstanceOfType(dataFilter))
         {
             return((IDataFilter)(dataFilter));
         }
         else
         {
             return(null);
         }
     }
 }