/// <summary> /// Return a PDF File from given view model /// View : Views/BillingReport/Invoice.cshtml /// </summary> /// <param name="reportInvoiceDetailViewModel"></param> /// <returns></returns> public ActionResult GenerateInvoiceDetailPdf(ReportInvoiceDetailViewModel reportInvoiceDetailViewModel) { // refers to master page of report const string relativePath = "~/Views/BillingReporting/InvoiceDetail.cshtml"; string content; //get hostName //var hostName = Request.Url.GetLeftPart(UriPartial.Authority) + "/"; var view = ViewEngines.Engines.FindView(ControllerContext, relativePath, null); //SAPServiceClient.RunPrintBillingsDTO serviceModel = null; // for displaying view models ViewData.Model = reportInvoiceDetailViewModel; using (var writer = new StringWriter()) { var context = new ViewContext(ControllerContext, view.View, ViewData, TempData, writer); view.View.Render(context, writer); writer.Flush(); content = writer.ToString(); byte[] pdfBuf = _pdfConverter.ConvertDetail(content, Server.MapPath("~/App_Data/")); if (pdfBuf == null) { return(HttpNotFound()); } return(File(pdfBuf, "application/pdf")); } }
public ActionResult GenerateInvoiceDetail(string bilDoc) { RunPrintBillingsDTO serviceModel; try { serviceModel = WCFClientManager.SAPServiceClient.GetBillingsToPrint(UserManagementHelper.GetSessionId(), bilDoc) as RunPrintBillingsDTO; } catch (Exception ex) { ErrorSignal.FromCurrentContext().Raise(ex); return(RedirectToAction("Index", "Error")); } ReportInvoiceDetailViewModel invoiceDetailViewModel = BillingReportingHelper.GenerateInvoiceDetailViewModel(serviceModel); return(GenerateInvoiceDetailPdf(invoiceDetailViewModel)); }