public async Task <string> CreateToxicologyAccessionReport([FromBody] ReportCaseData reportInfo) { string templateName = "ToxicologyAccessionCaseReport"; if (reportInfo != null && !string.IsNullOrEmpty(reportInfo.TemplateName)) { templateName = templateName + "_" + reportInfo.TemplateName; } ReportCreator report = new ReportCreator(); return(await report.CreateToxicologyAccessionReport(reportInfo, templateName)); }
public async Task <string> CreateToxicologyAccessionReport(ReportCaseData dataSource, string templateName) { int seriesCount = dataSource.PreviousHistoryChartData.Select(x => x.Name).Distinct().Count(); int xAxisDataCount = dataSource.PreviousHistoryChartData.Select(x => x.DateCollected).Distinct().Count(); //dataSource.ChartData = await this.GenerateChartImageFromXlsxFile("", "", dataSource.PreviousHistoryExcelChartData, seriesCount, xAxisDataCount); Console.Write(dataSource.ToString()); Console.WriteLine(templateName); //string templateName = "ToxicologyAccessionCaseReport"; string filePath = System.Configuration.ConfigurationManager.AppSettings["ReportTemplateLocation"].ToString() + "\\" + templateName + ".trdx"; XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; Telerik.Reporting.Report report = null; using (XmlReader xmlReader = XmlReader.Create(filePath, settings)) { ReportXmlSerializer xmlSerializer = new ReportXmlSerializer(); report = (Telerik.Reporting.Report)xmlSerializer.Deserialize(xmlReader); } report.DataSource = dataSource; ReportProcessor reportProcessor = new ReportProcessor(); InstanceReportSource instanceReportSource = new InstanceReportSource(); instanceReportSource.ReportDocument = report; RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, null); //var reportLocation = ConfigurationManager.AppSettings["ReportTempLocation"]; //string reportName = templateName+"_" + Guid.NewGuid().ToString() + "_" + DateTime.Now.ToString("yyyyMMdd_HH_mm_ss") + ".pdf"; //string reportDestination = Path.Combine(reportLocation, reportName); //using (FileStream fs = new FileStream(reportDestination, FileMode.Create)) //{ // fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length); //} //string reportUrl = dataSource.ServerUrl + "/" + reportName; ////byte[] bytes = result.DocumentBytes; //string response = Convert.ToBase64String(bytes); return(Convert.ToBase64String(result.DocumentBytes)); }