public byte[] GenerateYieldModelReport2Async(YieldModelResponse modelResult) { DataSet ds = new DataSet(); ds.Tables.Add(JsonConvert.DeserializeObject <DataTable>(JsonConvert.SerializeObject(modelResult.listPlantingHarvestWeeksYields))); ReportDataSource rds1 = new ReportDataSource { Name = "HeatTableDT", Value = ds.Tables[0] }; ReportParameter[] parametros = {}; LocalReport lr = new LocalReport(); var Reportpath = @".\Reports\YieldModelResultHeatTable.rdlc"; lr.ReportPath = Reportpath; lr.DisplayName = "Yield Model Results.pdf"; lr.SetParameters(parametros); lr.DataSources.Add(rds1); var reportType = "pdf"; string mimeType; string encoding; string fileNameExtension; Warning[] warnings; string[] streams; var renderedBytes = lr.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); return(renderedBytes); }
public byte[] GenerateYieldModelReportAsync(YieldModelResponse modelResult) { DataSet ds = new DataSet(); ds.Tables.Add(JsonConvert.DeserializeObject <DataTable>(JsonConvert.SerializeObject(modelResult.listHarvestWeekExpectedYields))); ReportDataSource rds1 = new ReportDataSource { Name = "YieldModelDS2", Value = ds.Tables[0] }; ds = new DataSet(); ds.Tables.Add(JsonConvert.DeserializeObject <DataTable>(JsonConvert.SerializeObject(modelResult.listPlantingHarvestWeeksYields))); ReportDataSource rds2 = new ReportDataSource { Name = "YieldModelDS1", Value = ds.Tables[0] }; ReportParameter[] parametros = { new ReportParameter("initPlantingWeek", modelResult.yieldInputsModel.startPWDate.ToString()), new ReportParameter("endPlantingWeek", modelResult.yieldInputsModel.endPWDate.ToString()), new ReportParameter("numbersOfWeeks", modelResult.yieldInputsModel.startPW.ToString() + " - " + modelResult.yieldInputsModel.endPW.ToString()), new ReportParameter("state", modelResult.yieldInputsModel.state.ToString()), new ReportParameter("zipCode", modelResult.yieldInputsModel.city.ToString()), new ReportParameter("tempScenario", modelResult.yieldInputsModel.tempScenario.ToString()), new ReportParameter("harvestRate", modelResult.yieldInputsModel.harvestRate.ToString()), new ReportParameter("minimalHarvestWet", modelResult.yieldInputsModel.minimalHarvest.ToString()), new ReportParameter("standardYield", modelResult.yieldInputsModel.standartYield.ToString()), new ReportParameter("minimumStandardYield", modelResult.yieldInputsModel.percentStandardYield.ToString()), new ReportParameter("minimumTime", modelResult.yieldInputsModel.minimumTime.ToString()), new ReportParameter("maximumHarvestTime", modelResult.yieldInputsModel.maximumHarvestTime.ToString()), new ReportParameter("crop", modelResult.yieldInputsModel.crop.ToString()) }; LocalReport lr = new LocalReport(); var Reportpath = @".\Reports\YieldModelResults.rdlc"; lr.ReportPath = Reportpath; lr.DisplayName = "Yield Model Results.pdf"; lr.SetParameters(parametros); lr.DataSources.Add(rds1); lr.DataSources.Add(rds2); var reportType = "pdf"; string mimeType; string encoding; string fileNameExtension; Warning[] warnings; string[] streams; var renderedBytes = lr.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); return(renderedBytes); }
public ActionResult CreateReportYieldModel([FromBody] YieldModelResponse modelResult) { try { var _reportService = new Services.ReportService(); var rpt1 = _reportService.GenerateYieldModelReportAsync(modelResult); var rpt2 = _reportService.GenerateYieldModelReport2Async(modelResult); using (MemoryStream ms = new MemoryStream()) { using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true)) { var zipArchiveEntry = archive.CreateEntry("1. Input Parameters and Expected Yields .pdf", CompressionLevel.Fastest); using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(rpt1, 0, rpt1.Length); zipArchiveEntry = archive.CreateEntry("2. Heat Table of Obtained Harvest.pdf", CompressionLevel.Fastest); using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(rpt2, 0, rpt2.Length); } //return File(ms.ToArray(), "application/zip", "Result Data.zip"); ActionResult document = File(ms.ToArray(), "application/zip", "Yield Model Results.zip"); DocumentResponseModel response = new DocumentResponseModel() { hasError = false, messageError = null, document = document }; return(Content(JsonConvert.SerializeObject(response), "application/json")); } } catch (Exception ex) { DocumentResponseModel response = new DocumentResponseModel() { hasError = true, messageError = ex.Message, document = null }; return(Content(JsonConvert.SerializeObject(response), "application/json")); } }