/// <summary> /// Render pdf document /// </summary> /// <param name="text">Text that should be in document</param> /// <param name="transactionID"></param> /// <returns>Path to this document</returns> public string PdfDocWithPath(BatchLetterDto dto, string userId) { //todo change returnun path to byte array return(string.Empty); //var userId = ExecutingUser.UserId.ToString(); //var endingFile = userId.Substring(userId.Length - 3); //string docName = $"Doc{dto.TransactionId}_{endingFile}.pdf"; //string.Format("/{0}.pdf", DateTime.Now); //var serverUtil = WorkingContext.HttpContext.Server; //string directory = serverUtil.MapPath($"/PDFs/{ExecutingUser.Schema}"); //if (!Directory.Exists(directory)) //{ // lock (new object()) // { // if (!Directory.Exists(directory)) // { // Directory.CreateDirectory(directory); // } // } //} //string path = Path.Combine(directory, docName); //return PdfDocPath(dto, path); }
/// <summary> /// CreatePdf /// </summary> /// <param name="dto"></param> /// <returns></returns> public byte[] PdfDoc(BatchLetterDto dto, bool isBase64Encode = true, string currency = "$") { LetterDto letter = null; DepartmentDto department = null; var transaction = _transactionService.GetPaymentById(dto.TransactionId); if (dto.LetterId != null) { transaction.LetterId = (short)dto.LetterId; } if (transaction.LetterId != null) { letter = _letterService.GetLetterById(transaction.LetterId.Value); } if (letter == null) { throw new Exception("Transaction don't contain letter"); } LetterFieldsDto fields = _letterService.GetLetterFields(dto.TransactionId, currency: currency); if (!string.IsNullOrEmpty(letter.PDFLetterText)) { letter.PDFLetterText = _templatesProvider.ReplaceFieldsTemplate(letter.PDFLetterText, fields); } if (letter.PDFSettingID == null) { department = _departmentService.GetDepartment(transaction.DepartmentId); } var addresses = _addressService.GetAddressesByFamilyId(transaction.FamilyId); PdfSettingDto setting = PreparePdfSetting(letter, department, addresses, transaction, fields); var country = _settingsProvider.GetSetting(Settings.DefaultCountry).Value; var response = _pdfTemplate.GetPdfFromTamplate(setting, country, fields); if (isBase64Encode) { return(EncodeBase64(response)); } return(response); }