// <summary> /// Записва ЕИСПП Отговор /// </summary> /// <param name="correlationId">Идентификатор на съобщение</param> /// <param name="htmlCard">Получена карта</param> /// <param name="eisppNumber">ЕИСПП номер на Наказателно Производство</param> private async Task SaveResponse(string correlationId, string response, string eisppNumber) { MQEpep mq = null; try { mq = repo.All <MQEpep>() .FirstOrDefault(m => m.MQId == correlationId); string fileName = $"EISPP_Response_{eisppNumber}_{ DateTime.Today.ToString("dd.MM.yyyy_HH:mm:ss") }.xml"; CdnUploadRequest request = new CdnUploadRequest() { ContentType = System.Net.Mime.MediaTypeNames.Text.Html, FileContentBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(response)), FileName = fileName, SourceId = correlationId, //mq.ParentSourceId.ToString(), SourceType = IOWebApplication.Infrastructure.Models.ViewModels.Common.SourceTypeSelectVM.Integration_EISPP_Response, Title = $"ОТГОВОР За Събитие НП: {eisppNumber} към { DateTime.Today.ToString("dd.MM.yyyy") }" }; if (!(await cdnService.MongoCdn_AppendUpdate(request))) { logger.LogError("Error in SaveCard with corelationId: {correlationId}!", correlationId); } } catch (Exception ex) { logger.LogError(ex, "Error in SaveCard with corelationId: {correlationId}!", correlationId);; } SetOk(correlationId, mq); }
/// <summary> /// запис на файл за бюлетин към лице /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <bool> SaveFileBulletin(int id) { TinyMCEVM htmlModel = printDocumentService.FillHtmlTemplateSentenceBulletin(id); string html = await this.RenderPartialViewAsync("~/Views/Shared/", "PreviewRaw.cshtml", htmlModel, true); var pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }) { PageSize = Rotativa.AspNetCore.Options.Size.B5 } .GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.CasePersonBulletin, SourceId = id.ToString(), FileName = "bulletin.pdf", ContentType = "application/pdf", Title = "Бюлетин за съдимост", FileContentBase64 = Convert.ToBase64String(pdfBytes) }; bool result = await cdnService.MongoCdn_AppendUpdate(pdfRequest); Response.Headers.Clear(); return(result); }
public async Task <IActionResult> UploadFile(ICollection <IFormFile> files, CdnUploadRequest model) { if (files != null && files.Count() > 0) { var file = files.First(); using (var ms = new MemoryStream()) { file.CopyTo(ms); model.FileContentBase64 = Convert.ToBase64String(ms.ToArray()); } model.ContentType = file.ContentType; model.FileName = Path.GetFileName(file.FileName); var response = await cdnService.MongoCdn_UploadFile(model); if (response != null && response.Succeded) { model.FileId = response.FileId; epepService.AppendFile(model, EpepConstants.ServiceMethod.Add); LogFileOperation(model.SourceType, model.SourceId, $"Добавен нов файл {model.FileName}:{model.Title}", OperationTypes.Patch); return(Content("ok")); } else { if (response != null) { logger.LogError($"UploadFile Error from CDN: {response.ErrorMessage}"); } return(Content("failed")); } } else { return(Content("failed")); } }
/// <summary> /// Записва ЕИСПП карта /// </summary> /// <param name="correlationId">Идентификатор на съобщение</param> /// <param name="htmlCard">Получена карта</param> /// <param name="eisppNumber">ЕИСПП номер на Наказателно Производство</param> private async Task SaveCard(string correlationId, string htmlCard, string eisppNumber) { MQEpep mq = null; try { mq = repo.All <MQEpep>() .FirstOrDefault(m => m.MQId == correlationId); string decodedCard = "<!DOCTYPE html>\n" + WebUtility.HtmlDecode(htmlCard); string fileName = $"EISPP_Card_{eisppNumber}_{ DateTime.Today.ToString("dd.MM.yyyy") }.html"; CdnUploadRequest request = new CdnUploadRequest() { ContentType = System.Net.Mime.MediaTypeNames.Text.Html, FileContentBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(decodedCard)), FileName = fileName, SourceId = mq.ParentSourceId.ToString(), SourceType = IOWebApplication.Infrastructure.Models.ViewModels.Common.SourceTypeSelectVM.Integration_EISPP_CardNP, Title = $"КАРТА ЗА СЪСТОЯНИЕ НА НП: {eisppNumber} към { DateTime.Today.ToString("dd.MM.yyyy") }" }; if (!(await cdnService.MongoCdn_AppendUpdate(request))) { logger.LogError("Error in SaveCard with corelationId: {correlationId}!", correlationId); } } catch (Exception ex) { logger.LogError(ex, "Error in SaveCard with corelationId: {correlationId}!", correlationId);; } SetOk(correlationId, mq); }
//[HttpPost] //public async Task<IActionResult> SignDoc(CaseSelectionProtokolPreviewVM model) //{ // var protokolModel = service.CaseSelectionProtokol_Preview(model.Id); // string html = await this.RenderPartialViewAsync("~/Views/CaseSelectionProtokol/", "Preview.cshtml", protokolModel, true); // var pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }, true).GetByte(this.ControllerContext); // var pdfRequest = new CdnUploadRequest() // { // SourceType = SourceTypeSelectVM.CaseSelectionProtokol, // SourceId = model.Id.ToString(), // FileName = "selectionProtokol.pdf", // ContentType = "application/pdf", // Title = $"Протокол за разпределение {protokolModel.SelectedLawUnitName} ({protokolModel.JudgeRoleName})", // FileContentBase64 = Convert.ToBase64String(pdfBytes) // }; // if (await cdnService.MongoCdn_AppendUpdate(pdfRequest)) // { // return RedirectToAction(nameof(SendForSign), new { id = model.Id }); // } // else // { // SetErrorMessage("Проблем при създаване на протокол!"); // return RedirectToAction(nameof(PreviewDoc), new { id = model.Id }); // } //} public async Task <IActionResult> SignDoc(int id) { var protokolModel = service.CaseSelectionProtokol_Preview(id); string html = await this.RenderPartialViewAsync("~/Views/CaseSelectionProtokol/", "Preview.cshtml", protokolModel, true); var pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }, true).GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.CaseSelectionProtokol, SourceId = id.ToString(), FileName = "selectionProtokol.pdf", ContentType = "application/pdf", Title = $"Протокол за разпределение {protokolModel.SelectedLawUnitName} ({protokolModel.JudgeRoleName})", FileContentBase64 = Convert.ToBase64String(pdfBytes) }; if (await cdnService.MongoCdn_AppendUpdate(pdfRequest)) { return(RedirectToAction(nameof(SendForSign), new { id = id })); } else { SetErrorMessage("Проблем при създаване на протокол!"); return(RedirectToAction(nameof(PreviewDoc), new { id = id })); } }
public async Task <IActionResult> Blank(BlankEditVM model, string btnPreview = null) { //return new ViewAsPdf("CreatePdf", model); var htmlRequest = new CdnUploadRequest() { SourceType = model.SourceType, SourceId = model.SourceId, FileName = "draft.html", ContentType = "text/html", FileContentBase64 = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(model.HtmlContent ?? "")) }; if (await cdnService.MongoCdn_AppendUpdate(htmlRequest)) { SetSuccessMessage(MessageConstant.Values.SaveOK); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } if (!string.IsNullOrEmpty(btnPreview)) { return(await blankPreview(model)); } return(RedirectToAction(nameof(Blank), new { id = model.SourceId })); }
public override void OnActionExecuted(ActionExecutedContext context) { base.OnActionExecuted(context); ControllerActionDescriptor controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { var auditScope = this.GetCurrentAuditScope(); if (HttpContext.Request.Method != HttpMethod.Get.Method) { var hasDisableAuditAttribute = controllerActionDescriptor .MethodInfo .CustomAttributes .Where(a => a.AttributeType == typeof(DisableAuditAttribute)) .Any(); if (!hasDisableAuditAttribute) { var _context = CurrentContext; if (_context.IsRead) { auditScope.SetCustomField("currentContext", _context.Info, true); } } } if (Request.Headers.TryGetValue("X-Forwarded-For", out var currentIp)) { string ip = currentIp; auditScope.SetCustomField("currentIp", ip, true); } var auditAction = auditScope?.Event?.GetMvcAuditAction(); if (auditAction?.ActionParameters != null) { CdnUploadRequest fileRequest = (CdnUploadRequest)auditAction.ActionParameters .Select(x => x.Value) .FirstOrDefault(x => x?.GetType() == typeof(CdnUploadRequest)); if (fileRequest != null) { fileRequest.FileContentBase64 = string.Empty; fileRequest.FileContent = null; } } auditScope.SaveAsync(); } }
public PartialViewResult UploadFile(int sourceType, string sourceId, string container, string defaultTitle) { CdnUploadRequest model = new CdnUploadRequest() { SourceType = sourceType, SourceId = sourceId, FileContainer = container, Title = defaultTitle }; model.FileUploadEnabled = config.GetValue <bool>("Environment:FileUploadEnabled"); return(PartialView(model)); }
public async Task <bool> MongoCdn_AppendUpdate(CdnUploadRequest request) { var files = Select(request.SourceType, request.SourceId); foreach (var file in files) { DeleteMongoFileData(file.FileId); } var uploadResult = await MongoCdn_UploadFile(request); if (uploadResult.Succeded) { request.FileId = uploadResult.FileId; } return(!string.IsNullOrEmpty(uploadResult.FileId)); }
public async Task <IActionResult> Blank(BlankEditVM model, string btnPreview = null, string reset_mode = null) { int id = int.Parse(model.SourceId); if (!string.IsNullOrEmpty(reset_mode)) { await cdnService.MongoCdn_DeleteFiles(new CdnFileSelect() { SourceType = model.SourceType, SourceId = model.SourceId }); SetSuccessMessage("Информацията е обновена с данните от бланката."); this.SaveLogOperation(this.ControllerName, nameof(Edit), "Обновяване на данните от бланката", IO.LogOperation.Models.OperationTypes.Patch, id); return(RedirectToAction(nameof(Blank), new { id = model.SourceId })); } //return new ViewAsPdf("CreatePdf", model); var htmlRequest = new CdnUploadRequest() { SourceType = model.SourceType, SourceId = model.SourceId, FileName = "draft.html", ContentType = "text/html", FileContentBase64 = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(model.HtmlContent ?? "")) }; if (await cdnService.MongoCdn_AppendUpdate(htmlRequest)) { SetSuccessMessage(MessageConstant.Values.SaveOK); this.SaveLogOperation(this.ControllerName, nameof(Edit), "Изготвяне на документ", IO.LogOperation.Models.OperationTypes.Update, id); if (!string.IsNullOrEmpty(btnPreview)) { return(await blankPreview(model)); } return(RedirectToAction(nameof(Edit), new { id = model.SourceId })); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(RedirectToAction(nameof(Blank), new { id = model.SourceId })); }
private async Task PrepareActFile(DocumentResolutionVM actModel, string html) { byte[] pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }, true).GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.DocumentResolutionPdf, SourceId = actModel.Id.ToString(), FileName = "documentResolution.pdf", ContentType = NomenclatureConstants.ContentTypes.Pdf, Title = actModel.GetFileTitle, FileContentBase64 = Convert.ToBase64String(pdfBytes) }; await cdnService.MongoCdn_AppendUpdate(pdfRequest); }
public async Task <CdnUploadResult> Upload(CdnUploadRequest request) { CdnUploadResult result = new CdnUploadResult() { Succeded = false }; try { result.FileId = await mongoService.UploadAsync(request); result.Succeded = !string.IsNullOrEmpty(result.FileId); } catch (Exception ex) { result.ErrorMessage = ex.Message; } return(result); }
public async Task <CdnUploadResult> MongoCdn_UploadFile(CdnUploadRequest request) { CdnUploadResult result = new CdnUploadResult() { Succeded = false }; Dictionary <string, object> metadata = new Dictionary <string, object>(); metadata.Add("contentType", request.ContentType); metadata.Add("sourceType", request.SourceType); metadata.Add("sourceId", request.SourceId); metadata.Add("title", request.Title); var options = new GridFSUploadOptions { Metadata = new BsonDocument(metadata) }; request.FileContent = Convert.FromBase64String(request.FileContentBase64); try { string mongoFileId = (await gridFsBucket.UploadFromBytesAsync(request.FileName, request.FileContent, options)).ToString(); if (!string.IsNullOrEmpty(mongoFileId)) { result.Succeded = SaveMongoFileData(request, mongoFileId); } result.FileId = mongoFileId; } catch (Exception ex) { result.ErrorMessage = ex.Message; } return(result); }
public async Task <IActionResult> Scan(ScanInfoViewModel model) { if (string.IsNullOrEmpty(model.FileName)) { model.FileName = $"ScannedDocument{DateTime.Now.ToString("ddMMyyHHmmss")}.pdf"; } else if (!model.FileName.EndsWith(".pdf")) { model.FileName += ".pdf"; } CdnUploadRequest fileModel = new CdnUploadRequest() { ContentType = MediaTypeNames.Application.Pdf, FileContentBase64 = model.FileContent, FileName = model.FileName, SourceId = model.SourceId, SourceType = model.SourceType, Title = model.Title, UserUploaded = userContext.UserId }; var response = await cdnService.MongoCdn_UploadFile(fileModel); if (response != null && response.Succeded) { fileModel.FileId = response.FileId; SaveLogOperation("Scan", "Scan", $"Добавен нов файл {model.FileName}:{model.Title}", OperationTypes.Patch, fileModel.SourceId); return(Redirect(model.ReturnUrl.AbsoluteUri)); } else { TempData[MessageConstant.ErrorMessage] = MessageConstant.Values.FileUploadFailed; return(Redirect(model.ReturnUrl.AbsoluteUri)); } }
private async Task prepareProtokolFile(int id) { var model = service.Select(new CaseDeactivationFilterVM { Id = id }).FirstOrDefault(); var htmlALL = await this.RenderPartialViewAsync("~/Views/CaseDeactivation/", "_Protokol.cshtml", model, true); byte[] pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = htmlALL }).GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.CaseDeactivate, SourceId = id.ToString(), FileName = "sessionAct.pdf", ContentType = NomenclatureConstants.ContentTypes.Pdf, Title = $"Протокол за анулиране на дело {model.CaseNumber}", FileContentBase64 = Convert.ToBase64String(pdfBytes) }; await cdnService.MongoCdn_AppendUpdate(pdfRequest); }
public async Task <string> UploadAsync(CdnUploadRequest file) { Dictionary <string, object> metadata = new Dictionary <string, object>(); metadata.Add("contentType", file.ContentType); metadata.Add("sourceType", file.SourceType); metadata.Add("sourceId", file.SourceId); metadata.Add("title", file.Title); var options = new GridFSUploadOptions { Metadata = new BsonDocument(metadata) }; file.FileContent = Convert.FromBase64String(file.FileContentBase64); var mongoFileId = (await GridFsBucket.UploadFromBytesAsync(file.FileName, file.FileContent, options)).ToString(); if (!string.IsNullOrEmpty(mongoFileId)) { cdnService.SaveMongoFileData(file, mongoFileId); } return(mongoFileId); }
public PartialViewResult UploadFile(int sourceType, string sourceId, string container, string defaultTitle) { CdnUploadRequest model = new CdnUploadRequest() { SourceType = sourceType, SourceId = sourceId, FileContainer = container, Title = defaultTitle }; var maxFileSize = documentService.SystemParam_Select($"max_filesize_sourcetype_{sourceType}"); if (maxFileSize != null) { try { model.MaxFileSize = int.Parse(maxFileSize.ParamValue); } catch { } } model.FileUploadEnabled = config.GetValue <bool>("Environment:FileUploadEnabled"); return(PartialView(model)); }
public bool SaveMongoFileData(CdnUploadRequest file, string mongoFileId) { try { var mongoFile = new MongoFile() { FileId = mongoFileId, SourceType = file.SourceType, SourceId = file.SourceId, Title = file.Title, FileSize = file.FileContent.Length, FileName = file.FileName, UserUploaded = file.UserUploaded, DateUploaded = DateTime.Now }; if (long.TryParse(mongoFile.SourceId, out long parsedId)) { mongoFile.SourceIdNumber = parsedId; } if (file.SignersCount > 0) { mongoFile.SignersCount = file.SignersCount; } repo.Add(mongoFile); repo.SaveChanges(); return(true); } catch (Exception) { return(false); } }
/// <summary> /// Запис на файл за Протокол на изпращане на ИЛ в НАП /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <bool> SaveFileExchangeDoc(int id) { TinyMCEVM htmlModel = printService.FillHtmlTemplateExchangeDoc(id); string html = await this.RenderPartialViewAsync("~/Views/Shared/", "PreviewRaw.cshtml", htmlModel, true); var pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }, true).GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.ExchangeDoc, SourceId = id.ToString(), FileName = "exchangeDoc.pdf", ContentType = "application/pdf", Title = "Протокол на изпращане на ИЛ в НАП", FileContentBase64 = Convert.ToBase64String(pdfBytes) }; bool result = await cdnService.MongoCdn_AppendUpdate(pdfRequest); Response.Headers.Clear(); return(result); }
private async Task <byte[]> RegixReportSaveFile(int regixTypeId, int id) { string html = ""; switch (regixTypeId) { case NomenclatureConstants.RegixType.PersonData: RegixPersonDataVM modelPerson = service.GetPersonalDataById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_PersonDataResponse.cshtml", modelPerson, true); break; case NomenclatureConstants.RegixType.PersonPermanentAddress: case NomenclatureConstants.RegixType.PersonCurrentAddress: RegixPersonAddressVM modelAddress = service.GetPersonAddressById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_PersonAddressResponse.cshtml", modelAddress, true); break; case NomenclatureConstants.RegixType.EmploymentContracts: RegixEmploymentContractsVM modelEmployment = service.GetEmploymentContractsById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_EmploymentContractsResponse.cshtml", modelEmployment, true); break; case NomenclatureConstants.RegixType.DisabilityCompensationByPaymentPeriod: case NomenclatureConstants.RegixType.UnemploymentCompensationByPaymentPeriod: RegixCompensationByPaymentPeriodVM modelCompensation = service.GetCompensationByPaymentPeriodById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_CompensationByPaymentPeriodResponse.cshtml", modelCompensation, true); break; case NomenclatureConstants.RegixType.PensionIncomeAmount: RegixPensionIncomeAmountVM modelPension = service.GetPensionIncomeAmountReportById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_PensionIncomeAmountReportResponse.cshtml", modelPension, true); break; case NomenclatureConstants.RegixType.PersonalIdentityV2: RegixPersonalIdentityV2VM modelIdentityV2 = service.GetPersonalIdentityV2ById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_PersonalIdentityV2Response.cshtml", modelIdentityV2, true); break; case NomenclatureConstants.RegixType.ActualStateV3: (bool result, string errorMessage, RegixActualStateV3VM modelActualStateV3) = service.GetActualStateV3ById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_ActualStateV3Response.cshtml", modelActualStateV3, true); break; case NomenclatureConstants.RegixType.StateOfPlay: RegixStateOfPlayVM modelState = service.GetStateOfPlayById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_StateOfPlayResponse.cshtml", modelState, true); break; case NomenclatureConstants.RegixType.PersonDataAddress: RegixPersonDataAddressVM modelPersonDataAddress = service.GetPersonDataAddressById(id); html = await this.RenderPartialViewAsync("~/Views/RegixReport/", "_PersonDataAddressResponse.cshtml", modelPersonDataAddress, true); break; default: break; } var pdfBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }).GetByte(this.ControllerContext); var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.RegixReport, SourceId = id.ToString(), FileName = "regixreport.pdf", ContentType = "application/pdf", Title = "Справка", FileContentBase64 = Convert.ToBase64String(pdfBytes) }; await cdnService.MongoCdn_AppendUpdate(pdfRequest); return(pdfBytes); }
protected override async Task SendMQ(MQEpep mq) { string text = mq.Content == null ? "" : Encoding.UTF8.GetString(mq.Content); if (string.IsNullOrEmpty(text)) { using (var scope = new TransactionScope()) { text = GenerateXml(mq); mq.Content = Encoding.UTF8.GetBytes(text); repo.Update(mq); repo.SaveChanges(); scope.Complete(); } } var response = await requester.PostAsyncTextXml(uploadUrl.AbsoluteUri, text); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); XElement result = null; if (!string.IsNullOrEmpty(content)) { XDocument message = XDocument.Parse(content); result = message?.Element("response")?.Element("success"); } else { content = "Получен е празен резултат от ИСПН"; } if (result != null) { mq.IntegrationStateId = IntegrationStates.TransferOK; mq.DateTransfered = DateTime.Now; mq.Content = Encoding.UTF8.GetBytes(text); repo.Update(mq); repo.SaveChanges(); if (caseMq != null) { var mqHash = caseMq.FirstOrDefault(x => x.Id == mq.Id); mqHash.Content = mq.Content; mqHash.IntegrationStateId = mq.IntegrationStateId; } string fileName = $"Ispn_{mq.Id}_{ DateTime.Today:dd.MM.yyyy}.xml"; CdnUploadRequest request = new CdnUploadRequest() { ContentType = System.Net.Mime.MediaTypeNames.Text.Html, FileContentBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(content)), FileName = fileName, SourceId = mq.ParentSourceId.ToString(), SourceType = SourceTypeSelectVM.Integration_ISPN, Title = $"Отговор към { DateTime.Today:dd.MM.yyyy}" }; if (!(await cdnService.MongoCdn_AppendUpdate(request))) { logger.LogError("Error in SaveContent ISPN mqId {mq.Id}!", mq.Id.ToString()); } } else { SetErrorToMQ(mq, IntegrationStates.DataContentError, content); } } else { throw new Exception($"Error {response.StatusCode} : {response.ReasonPhrase} sending message ISPN!"); } }
/// <summary> /// Запис на файл за документ /// </summary> /// <param name="id"></param> /// <param name="documentId"></param> /// <returns></returns> public async Task <IActionResult> GenerateDocumentFile(int id, long documentId) { if (!service.DocumentTemplate_UpdateDocumentId(id, documentId)) { SetErrorMessage("Проблем при изчитане на създаден документ"); return(RedirectToAction("Edit", "Document", new { id = documentId })); } var docTemplate = service.GetById <DocumentTemplate>(id); var headerModel = service.DocumentTemplate_InitHeader(id); byte[] fileBytes = null; if (docTemplate.HtmlTemplateId > 0) { string preparedBlank = await cdnService.LoadHtmlFileTemplate(new CdnFileSelect() { SourceType = SourceTypeSelectVM.DocumentTemplate, SourceId = id.ToString() }); fileBytes = await PdfBytesFromTemplate(docTemplate.Id, preparedBlank); //string html = FillBlankByTemplate(docTemplate.Id, preparedBlank); ////string html = await this.RenderPartialViewAsync("~/Views/Shared/", "PreviewRaw.cshtml", htmlModel, true); //fileBytes = await new ViewAsPdfByteWriter("CreatePdf", new BlankEditVM() { HtmlContent = html }).GetByte(this.ControllerContext); } else { int sourceType = SourceTypeSelectVM.DocumentTemplate; fileBytes = await GetFileBytes(headerModel, sourceType, id.ToString()); } var pdfRequest = new CdnUploadRequest() { SourceType = SourceTypeSelectVM.DocumentPdf, SourceId = documentId.ToString(), FileName = "documentTemplate.pdf", ContentType = "application/pdf", Title = $"{headerModel.DocumentTypeLabel} {headerModel.DocumentNumber}/{headerModel.DocumentDate:dd.MM.yyyy}", FileContentBase64 = Convert.ToBase64String(fileBytes) }; await cdnService.MongoCdn_AppendUpdate(pdfRequest); var newTask = new WorkTaskEditVM() { SourceType = SourceTypeSelectVM.Document, SourceId = documentId, TaskTypeId = WorkTaskConstants.Types.Document_Sign, UserId = headerModel.AuthorId, TaskExecutionId = WorkTaskConstants.TaskExecution.ByUser }; taskService.CreateTask(newTask); if (docTemplate.SourceType == SourceTypeSelectVM.ExchangeDoc) { await SaveFileExchangeDoc((int)docTemplate.SourceId); } SetSuccessMessage("Регистрирането на създадения документ премина успешно."); return(RedirectToAction("Edit", "Document", new { id = documentId })); }