public ActionResult ExpDocumentExportFilePdf(string productSeriesId, Guid id) { string name = $"Заключение о безопасности и качества.pdf"; var serieId = Convert.ToInt32(productSeriesId); var expDocument = db.OBK_StageExpDocument.FirstOrDefault(o => o.ProductSeriesId == serieId); StiReport report = new StiReport(); try { var declaration = db.OBK_AssessmentDeclaration.FirstOrDefault(o => o.Id == id); var applicationBlankNumber = expDocument.ExpApplicationNumber != null ? expDocument.ExpApplicationNumber : ""; if (applicationBlankNumber.Length < 6) { for (int c = applicationBlankNumber.Length; c < 6; c++) { applicationBlankNumber = "0" + applicationBlankNumber; } } if (CodeConstManager.OBK_SA_SERIAL.Equals(declaration.TypeId.ToString())) { if (expDocument.ExpApplication == false) { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentApplicationSerialPdf.mrt")); } else { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentSerialPdf.mrt")); } var tail = " согласно приложения КЗП № {" + applicationBlankNumber + "}, серийная"; var dictionary = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameRu + " серийный выпуск", 90, 120, 150, expDocument.ExpProductShortNameRu, tail); report.Dictionary.Variables["ProductNameRu1"].ValueObject = dictionary.ContainsKey(1) ? dictionary[1] : ""; report.Dictionary.Variables["ProductNameRu2"].ValueObject = dictionary.ContainsKey(2) ? dictionary[2] : ""; report.Dictionary.Variables["ProductNameRu3"].ValueObject = dictionary.ContainsKey(3) ? dictionary[3] : ""; var tailKaz = " ҚҚҚ № {" + applicationBlankNumber + "} қосымшаға сәйкес, сериялы шыгарылым"; var dictionaryKaz = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameKz + " сериялық", 60, 120, 150, expDocument.ExpProductShortNameKz, tailKaz); report.Dictionary.Variables["ProductNameKz1"].ValueObject = dictionaryKaz.ContainsKey(1) ? dictionaryKaz[1] : ""; report.Dictionary.Variables["ProductNameKz2"].ValueObject = dictionaryKaz.ContainsKey(2) ? dictionaryKaz[2] : ""; report.Dictionary.Variables["ProductNameKz3"].ValueObject = dictionaryKaz.ContainsKey(3) ? dictionaryKaz[3] : ""; report.Dictionary.Variables["productSeriesId"].ValueObject = serieId; var reportOp = db.OBK_AssessmentReportOP.FirstOrDefault(o => o.DeclarationId == id); if (reportOp != null) { var opExecutor = db.OBK_AssessmentReportOPExecutors.OrderByDescending(o => o.Date).FirstOrDefault(o => o.ReportId == reportOp.Id); if (opExecutor != null && opExecutor.Date != null) { report.Dictionary.Variables["OpExecutorDate"].ValueObject = ((DateTime)opExecutor.Date).ToString("dd.MM.yyyy"); } } } else if (CodeConstManager.OBK_SA_PARTY.Equals(declaration.TypeId.ToString())) { if (expDocument.ExpApplication == false) { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentApplicationPartyPdf.mrt")); } else { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentPartyPdf.mrt")); } var tail = " согласно приложения КЗП № {" + applicationBlankNumber + "}"; var dictionary = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameRu, 90, 120, 170, expDocument.ExpProductShortNameRu, tail); report.Dictionary.Variables["ProductNameRu1"].ValueObject = dictionary.ContainsKey(1) ? dictionary[1] : ""; report.Dictionary.Variables["ProductNameRu2"].ValueObject = dictionary.ContainsKey(2) ? dictionary[2] : ""; report.Dictionary.Variables["ProductNameRu3"].ValueObject = dictionary.ContainsKey(3) ? dictionary[3] : ""; var tailKaz = " ҚҚҚ № {" + applicationBlankNumber + "} қосымшаға сәйкес"; var dictionaryKaz = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameKz, 60, 120, 160, expDocument.ExpProductShortNameKz, tailKaz); report.Dictionary.Variables["ProductNameKz1"].ValueObject = dictionaryKaz.ContainsKey(1) ? dictionaryKaz[1] : ""; report.Dictionary.Variables["ProductNameKz2"].ValueObject = dictionaryKaz.ContainsKey(2) ? dictionaryKaz[2] : ""; report.Dictionary.Variables["ProductNameKz3"].ValueObject = dictionaryKaz.ContainsKey(3) ? dictionaryKaz[3] : ""; report.Dictionary.Variables["productSeriesId"].ValueObject = serieId; } else { if (expDocument.ExpApplication == false) { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentApplicationPdf.mrt")); } else { report.Load(Server.MapPath("~/Reports/Mrts/OBKExpDocumentPdf.mrt")); } var tail = " согласно приложения КЗП № {" + applicationBlankNumber + "}"; var dictionary = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameRu, 90, 120, 170, expDocument.ExpProductShortNameRu, tail); report.Dictionary.Variables["ProductNameRu1"].ValueObject = dictionary.ContainsKey(1) ? dictionary[1] : ""; report.Dictionary.Variables["ProductNameRu2"].ValueObject = dictionary.ContainsKey(2) ? dictionary[2] : ""; report.Dictionary.Variables["ProductNameRu3"].ValueObject = dictionary.ContainsKey(3) ? dictionary[3] : ""; var tailKaz = " ҚҚҚ № {" + applicationBlankNumber + "} қосымшаға сәйкес"; var dictionaryKaz = ZBKSpaceHelper.BuildName(expDocument.ExpProductNameKz, 60, 120, 160, expDocument.ExpProductShortNameKz, tailKaz); report.Dictionary.Variables["ProductNameKz1"].ValueObject = dictionaryKaz.ContainsKey(1) ? dictionaryKaz[1] : ""; report.Dictionary.Variables["ProductNameKz2"].ValueObject = dictionaryKaz.ContainsKey(2) ? dictionaryKaz[2] : ""; report.Dictionary.Variables["ProductNameKz3"].ValueObject = dictionaryKaz.ContainsKey(3) ? dictionaryKaz[3] : ""; } foreach (var data in report.Dictionary.Databases.Items.OfType <StiSqlDatabase>()) { data.ConnectionString = UserHelper.GetCnString(); } report.Dictionary.Variables["StageExpDocumentId"].ValueObject = Convert.ToInt32(productSeriesId); report.Dictionary.Variables["AssessmentDeclarationId"].ValueObject = id; report.Dictionary.Variables["StartMonthRu"].ValueObject = MonthHelper.getMonthRu(expDocument.ExpStartDate); report.Dictionary.Variables["StartMonthKz"].ValueObject = MonthHelper.getMonthKz(expDocument.ExpStartDate); if (expDocument.ExpEndDate != null) { expDocument.ExpEndDate = ((DateTime)expDocument.ExpEndDate).AddMonths(1); } report.Dictionary.Variables["EndMonthRu"].ValueObject = MonthHelper.getMonthRu(expDocument.ExpEndDate); report.Dictionary.Variables["EndMonthKz"].ValueObject = MonthHelper.getMonthKz(expDocument.ExpEndDate); report.Dictionary.Variables["addInfo"].ValueObject = assessmentRepo.FormExpAdditionalInfo(declaration); report.Dictionary.Variables["addInfoKz"].ValueObject = assessmentRepo.FormExpAdditionalInfo(declaration, true); report.Render(false); } catch (Exception ex) { LogHelper.Log.Error("ex: " + ex.Message + " \r\nstack: " + ex.StackTrace); } var stream = new MemoryStream(); report.ExportDocument(StiExportFormat.Pdf, stream); stream.Position = 0; return(File(stream, "application/pdf", name)); }