Exemplo n.º 1
0
        /// <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"));
            }
        }
Exemplo n.º 2
0
        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));
        }