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)); } }
private void RenderReport(ReportGenerationArguments arguments, Func <string, ReportGenerationArguments, NodePipeLineTask> taskFactory, IRespondWithSuccessOrError <string, ErrorOutput> presenter) { var nodeAppPath = Fetch_NodeApp_Path(_options.NodeApp); var task = taskFactory.Invoke(nodeAppPath, arguments); var executor = new SynchronousAction(task, new ProcessFactory()); executor.Execute(presenter); }