public HttpResponseMessage Pdf() { PDFController controller = new PDFController(); RouteData route = new RouteData(); route.Values.Add("action", "getPdf"); // ActionName route.Values.Add("controller", "PDF"); // Controller Name System.Web.Mvc.ControllerContext newContext = new System.Web.Mvc.ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current), route, controller); controller.ControllerContext = newContext; var actionPDF = controller.getPdf(); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new ByteArrayContent(actionPDF); // new StreamContent(new FileStream(localFilePath, FileMode.Open, FileAccess.Read)); response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"); response.Content.Headers.ContentDisposition.FileName = "SamplePDF.PDF"; response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); return(response); }
public async Task <IActionResult> Approve(string id) { var userId = await this.ordersService.ChangeStatusAsync(id, GlobalConstants.ApprovedStatus); var userEmail = await this.usersService.GetUserEmailByIdAsync(userId); var model = await this.ordersService.GetOrderDetailsAsync <OrderPDFViewModel>(id); model.User = await this.usersService.GetUserDataByOrderIdAsync <UserOrderDetailsViewModel>(id); model.DessertsInBasket = await this.dessertOrdersService.GetDessertsCurrentOrderAsync <DessertBasketViewModel>(id); var emailAttachments = PDFController.PreparePdfFile <OrderPDFViewModel>(model, GlobalConstants.GenerateOrderPdfViewName, GlobalConstants.GenerateOrderPdfViewName, this.ControllerContext); await this.emailSender.SendEmailAsync( GlobalConstants.CakeShopEmail, GlobalConstants.SystemName, userEmail, GlobalConstants.OrderConfirmationTitle, string.Format(GlobalConstants.OrderConfirmation), attachments : emailAttachments); return(this.RedirectToAction(nameof(this.GetOrderDetails), new { Id = id })); }
private static IEnumerable <PriceChangeItem> GetLastMonth(IEnumerable <PriceChangeItem> priceChangeHistory) { return(GetPriceList(priceChangeHistory, PDFController.FirstDayOfMonthFromDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1)), PDFController.LastDayOfMonthFromDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1)), DateTime.Now.Date)); }
private static IEnumerable <PriceChangeItem> GetThisMonth(IEnumerable <PriceChangeItem> priceChangeHistory) { return(GetPriceList(priceChangeHistory, PDFController.FirstDayOfMonthFromDateTime(DateTime.Now), PDFController.LastDayOfMonthFromDateTime(DateTime.Now), DateTime.Now.Date)); }