private RenderedDocumentOutput CreateReport(ReportFactoryArguments arguements, Func <string, ReportGenerationArguments, NodePipeLineTask> taskFactory) { using (var renderDirectory = GetWorkspace()) { var reportJsonPath = PersistReportData(arguements.ReportJson, renderDirectory.TmpPath); var reportTemplatePath = FetchReportTemplatePath(arguements.TemplateName, arguements.Extension); if (InvalidReportTemplatePath(reportTemplatePath)) { return(ReturnInvalidReportTemplatePathError(reportTemplatePath)); } var presenter = new PropertyPresenter <string, ErrorOutput>(); var reportArguments = new ReportGenerationArguments { TemplatePath = reportTemplatePath, JsonPath = reportJsonPath, SheetNumber = arguements.SheetNumber }; RenderReport(reportArguments, taskFactory, presenter); return(RenderingErrors(presenter) ? ReturnErrors(presenter) : ReturnRenderedReport(presenter)); } }
public RenderedDocumentOutput CreateWordReport(RenderWordInput input) { Func <string, ReportGenerationArguments, NodePipeLineTask> renderFactory = (nodeAppPath, arguements) => { return(new WordRender(nodeAppPath, arguements.TemplatePath, arguements.JsonPath)); }; var factoryArguments = new ReportFactoryArguments { ReportJson = input.JsonModel.ToString(), TemplateName = input.TemplateName, Extension = "docx" }; var result = CreateReport(factoryArguments, renderFactory); result.ContentType = ContentTypes.Word; return(result); }
public RenderedDocumentOutput CreateExcelReport(RenderExcelInput input) { Func <string, ReportGenerationArguments, NodePipeLineTask> renderFactory = (nodeAppPath, arguments) => { return(new ExcelRender(nodeAppPath, arguments.TemplatePath, arguments.JsonPath, arguments.SheetNumber)); }; var factoryArguments = new ReportFactoryArguments { ReportJson = input.JsonModel.ToString(), TemplateName = input.TemplateName, Extension = "xlsx", SheetNumber = input.SheetNumber }; var result = CreateReport(factoryArguments, renderFactory); result.ContentType = ContentTypes.Excel; return(result); }