public async Task <IActionResult> GetPDF([FromRoute] int Id) { if (!ModelState.IsValid) { var exception = new { error = ResultFormatter.FormatErrorMessage(ModelState) }; return(new BadRequestObjectResult(exception)); } try { var indexAcceptPdf = Request.Headers["Accept"].ToList().IndexOf("application/pdf"); int timeoffsset = Convert.ToInt32(Request.Headers["x-timezone-offset"]); var model = await _service.ReadById(Id); if (model == null) { return(StatusCode((int)HttpStatusCode.NotFound, "Not Found")); } else { GarmentPackingListViewModel pl = await _packingListService.ReadByInvoiceNo(model.invoiceNo); GarmentShippingInvoiceViewModel invoice = await _invoiceService.ReadById(model.invoiceId); Buyer buyer = _invoiceService.GetBuyer(invoice.BuyerAgent.Id); var PdfTemplate = new GarmentCoverLetterPdfTemplate(); MemoryStream stream = PdfTemplate.GeneratePdfTemplate(model, pl, buyer, timeoffsset); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = "Cover Letter - " + model.invoiceNo + ".pdf" }); } } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
public async Task <IActionResult> GetPDF([FromRoute] int Id) { if (!ModelState.IsValid) { var exception = new { error = ResultFormatter.FormatErrorMessage(ModelState) }; return(new BadRequestObjectResult(exception)); } try { var indexAcceptPdf = Request.Headers["Accept"].ToList().IndexOf("application/pdf"); int timeoffsset = Convert.ToInt32(Request.Headers["x-timezone-offset"]); var model = await _service.ReadById(Id); if (model == null) { return(StatusCode((int)HttpStatusCode.NotFound, "Not Found")); } else { List <GarmentShippingInvoiceViewModel> invoices = new List <GarmentShippingInvoiceViewModel>(); List <GarmentPackingListViewModel> packingLists = new List <GarmentPackingListViewModel>(); foreach (var invoiceItem in model.invoiceDetails) { GarmentShippingInvoiceViewModel invoice = await _invoiceService.ReadById(invoiceItem.invoiceId); GarmentPackingListViewModel pl = await _packingListService.ReadByInvoiceNo(invoiceItem.invoiceNo); invoices.Add(invoice); packingLists.Add(pl); } if (model.paymentType == "FORWARDER") { if (model.isFreightCharged) { var PdfTemplate = new GarmentShippingPaymentDispositionForwarderFCPDFTemplate(); MemoryStream stream = PdfTemplate.GeneratePdfTemplate(model, invoices, timeoffsset); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = model.dispositionNo + ".pdf" }); } else { var PdfTemplate = new GarmentShippingPaymentDispositionForwarderPDFTemplate(); MemoryStream stream = PdfTemplate.GeneratePdfTemplate(model, invoices, packingLists, timeoffsset); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = model.dispositionNo + ".pdf" }); } } else if (model.paymentType == "EMKL") { var PdfTemplate = new GarmentShippingPaymentDispositionEMKLPDFTemplate(); MemoryStream stream = PdfTemplate.GeneratePdfTemplate(model, invoices, timeoffsset); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = model.dispositionNo + ".pdf" }); } else { var PdfTemplate = new GarmentShippingPaymentDispositionCourierPDFTemplate(); MemoryStream stream = PdfTemplate.GeneratePdfTemplate(model, timeoffsset); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = model.dispositionNo + ".pdf" }); } } } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }