Example #1
0
 private void CheckReportGeneratorConfiguration(ReportGeneratorConfiguration configuration)
 {
     if (configuration.ReportTemplateId == Guid.Empty)
     {
         throw new ArgumentEmptyException(nameof(configuration.ReportTemplateId));
     }
     if (configuration.EntitySchemaUId == Guid.Empty)
     {
         throw new ArgumentEmptyException(nameof(configuration.EntitySchemaUId));
     }
 }
Example #2
0
        /// <summary>
        /// Generates DevExpress report.
        /// </summary>
        /// <param name="userConnection">User connection.</param>
        /// <param name="configuration">Provides configuration for report generator.</param>
        /// <returns>Returns prepared report.</returns>
        public ReportData Generate(UserConnection userConnection, ReportGeneratorConfiguration configuration)
        {
            CheckReportGeneratorConfiguration(configuration);
            DevExpressReportMetadata templateMetadata =
                GetTemplateMetadata(userConnection, configuration.ReportTemplateId);
            string templateSourceCode       = DecodeTemplateSourceCode(templateMetadata);
            var    reportProvider           = GetReportProvider(userConnection);
            DevExpressReportTemplate report = reportProvider.CreateReport(templateSourceCode, templateMetadata.Name);

            report.UserConnection = userConnection;
            var reportParametersConfigurator = GetReportParametersConfigurator();

            reportParametersConfigurator.ConfigureParameters(userConnection, report, configuration);
            using (var reportStream = new MemoryStream()) {
                report.ExportToPdf(reportStream);
                return(new ReportData {
                    Caption = templateMetadata.Caption,
                    Data = reportStream.ToArray(),
                    Format = "pdf"
                });
            }
        }
Example #3
0
 /// <inheritdoc cref="BaseAsyncReportGenerator.PrepareReport(UserConnection, ReportGeneratorConfiguration)"/>
 protected override ReportData PrepareReport(UserConnection userConnection, ReportGeneratorConfiguration configuration)
 {
     return(_wordReportGenerator.Generate(userConnection, configuration));
 }
Example #4
0
 /// <summary>
 /// Generates report before sending to convert service.
 /// </summary>
 /// <param name="userConnection"><see cref="UserConnection"/>.</param>
 /// <param name="configuration">Report generator configuration.</param>
 /// <returns>Returns generated report data. <see cref="ReportData"/>.</returns>
 protected abstract ReportData PrepareReport(UserConnection userConnection, ReportGeneratorConfiguration configuration);
 public void ConfigureParameters(UserConnection userConnection,
                                 Tools.DevExpressReport.DevExpressReport report, ReportGeneratorConfiguration configuration)
 {
     if (report.Parameters.Count == 0 || configuration.ReportParameters == null)
     {
         return;
     }
     foreach (var parameter in configuration.ReportParameters)
     {
         if (report.Parameters[parameter.Key] != null && parameter.Key != "Filters")
         {
             report.Parameters[parameter.Key].Value = parameter.Value;
         }
         else
         {
             if (parameter.Value != null)
             {
                 var filters    = Json.Deserialize <Filters>(parameter.Value.ToString());
                 var esqFilters = filters.BuildEsqFilter(configuration.EntitySchemaUId, userConnection);
                 if (report.Parameters[parameter.Key] != null)
                 {
                     report.Parameters[parameter.Key].Value = esqFilters;
                 }
             }
         }
     }
 }