예제 #1
0
        public static NEMILTEC.Interfaces.Service.Reporting.Report CreateReport(Domain.Report report, IDataContext context)
        {
            var newReport = new NEMILTEC.Interfaces.Service.Reporting.Report
            {
                Name               = report.Name,
                Description        = report.Description,
                Title              = report.Title,
                TemplateFileStream = NEMILTEC.Service.Shared.Document.GetStream(report.TemplateFile.Id, context),
                OutputType         = (NEMILTEC.Interfaces.Service.Reporting.Enums.ReportOutputType)report.OutputType.Id
            };

            newReport.Elements = report.Elements.Select(e => _CreateElement(e, newReport, context)).ToArray();

            return(newReport);
        }
예제 #2
0
        private static NEMILTEC.Interfaces.Service.Reporting.IReportElement _CreateElement(
            Domain.ReportElement element,
            NEMILTEC.Interfaces.Service.Reporting.Report report,
            IDataContext context)
        {
            var newElement = ReportElementFactory.Create(element.ReportElementType.Id);

            newElement.Name        = element.Name;
            newElement.Description = element.Description;
            newElement.Title       = element.Title;

            newElement.Report = report;

            if (!element.TemplateInfo.IsNullOrEmpty())
            {
                var templateInfo = ReportElementTemplateInfoSerializer.Deserialize((ReportElementType)element.ReportElementType.Id, element.TemplateInfo);
                newElement.TemplateInfo = templateInfo;
            }

            //if (element.Expression != null)
            //{
            //    newElement.Expression = ExpressionFactory.Create(element.Expression, context);
            //}

            if (element.Query != null)
            {
                newElement.Query = QueryFactory.Create(element.Query);
            }

            if (!element.Parameters.IsNullOrEmpty())
            {
                newElement.Parameters = element.Parameters.Select(p => _CreateElementParameter(p, context)).ToArray();
            }

            return(newElement);
        }