public ActionResult SendEmail(EmailViewModel vm) { try { OrdersTransfereeItineraryViewModel viewModel = BuildItineraryByOrderId(vm.id); viewModel.Id = vm.id; viewModel.IsPdf = true; var to = ParseAddress(vm.Email); if (to == null) { return(null); } Transferee ee = GetTransfereeByOrderId(vm.id); if (ee == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found")); } viewModel.TransfereeName = ee.FullName; string filename = "Itinerary" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf"; var pdf = new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel); byte[] pdfBytes = pdf.BuildFile(ControllerContext); MemoryStream stream = new MemoryStream(pdfBytes); EmailHelper EH = new EmailHelper(); EH.SendEmail_FS(to, vm.Subject, vm.Message, SendGrid.MimeType.Html, filename, pdfBytes); viewModel.IsPdf = false; return(PartialView("~/views/orders/partials/_Itinerary.cshtml", viewModel)); } catch (Exception ex) { ModelState.Clear(); return(null); } }
public void Build_WhenCalled_OneService_Should_Return_One_Task() { // Arrange OrdersTransfereeItineraryViewModel itin = new OrdersTransfereeItineraryViewModel(); var order = setUpOrder(); svc = new Service() { OrderId = order.Id, ServiceTypeId = 1, Notes = "Integrated service test", Deleted = false, ScheduledDate = DateTime.Now, Selected = true }; appt = new Appointment(); order.Appointments.Add(appt); order.Appointments.Remove(appt); //act order.Services.Add(svc); Context.Orders.Add(order); Context.SaveChanges(); Context.Entry(order).Reload(); //assert var result = _itineraryHelper.Build(order); result.Itinerary.ToList().Count().Should().Equals(1); }
public void Build_WhenCalled_WrongOrderId_Should_Return_Empty_Itinerary() { // Arrange OrdersTransfereeItineraryViewModel itin = new OrdersTransfereeItineraryViewModel(); var order = setUpOrder(); svc = new Service() { OrderId = order.Id, ServiceTypeId = 1, Notes = "Integrated service test", Deleted = false, ScheduledDate = DateTime.Now, Selected = true }; appt = new Appointment() { OrderId = order.Id, ScheduledDate = DateTime.Now.AddDays(1), Deleted = false, Description = "Integrated appointment test" }; //act order.Services.Add(svc); order.Appointments.Add(appt); Context.Orders.Add(order); Context.SaveChanges(); Context.Entry(order).Reload(); //assert var result = _itineraryHelper.Build(null); result.Should().BeNull(); }
public OrdersTransfereeItineraryViewModel Build(string id) { var itinerary = GetItinerary(id); OrdersTransfereeItineraryViewModel vm = new OrdersTransfereeItineraryViewModel(); vm.Itinerary = itinerary; return(vm); }
public OrdersTransfereeItineraryViewModel Build(Order order) { if (order == null) { return(null); } var itinerary = GetItinerary(order); OrdersTransfereeItineraryViewModel vm = new OrdersTransfereeItineraryViewModel(); vm.Itinerary = itinerary; return(vm); }
public ActionResult ItineraryPartial(string id) { OrdersTransfereeItineraryViewModel viewModel = GetItineraryByOrderId(id); viewModel.Id = id; Transferee ee = GetTransfereeByOrderId(id); if (ee == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found")); } viewModel.TransfereeName = ee.FullName; return(PartialView("~/views/orders/partials/_Itinerary.cshtml", viewModel)); }
public ActionResult GenerateItineraryPDF(string id) { OrdersTransfereeItineraryViewModel viewModel = GetItineraryByOrderId(id); viewModel.Id = id; viewModel.IsPdf = true; Transferee ee = GetTransfereeByOrderId(id); viewModel.TransfereeName = ee.FullName; return(new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel) { FileName = "Itinerary.pdf", PageMargins = new Rotativa.Options.Margins(0, 0, 0, 0) }); }
public ActionResult ItineraryPartial(string id) { var userId = User.Identity.GetUserId(); Order order = _unitOfWork.Orders.GetOrderFor(userId, id, User.GetUserRole()); if (order == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found")); } OrdersTransfereeItineraryViewModel viewModel = GetItineraryFromOrder(order); viewModel.Id = id; viewModel.TransfereeName = order.Transferee.FullName; return(PartialView("~/views/orders/partials/_Itinerary.cshtml", viewModel)); }
public void Build_WhenCalled_Should_Return_No_Tasks() { // Arrange OrdersTransfereeItineraryViewModel itin = new OrdersTransfereeItineraryViewModel(); var order = setUpOrder(); //act svc = new Service(); order.Services.Add(svc); order.Services.Remove(svc); appt = new Appointment(); order.Appointments.Add(appt); order.Appointments.Remove(appt); Context.Orders.Add(order); Context.SaveChanges(); Context.Entry(order).Reload(); //assert var result = _itineraryHelper.Build(order); result.Itinerary.ToList().Count().Should().Equals(0); }
public ActionResult GenerateItineraryPDF(string id) { var userId = User.Identity.GetUserId(); Order order = _unitOfWork.Orders.GetOrderFor(userId, id, User.GetUserRole()); if (order == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found")); } OrdersTransfereeItineraryViewModel viewModel = GetItineraryFromOrder(order); viewModel.Id = order.Id; viewModel.IsPdf = true; viewModel.TransfereeName = order.Transferee.FullName; return(new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel) { FileName = "Itinerary.pdf", PageMargins = new Rotativa.Options.Margins(0, 0, 0, 0) }); }
public ActionResult SendEmail(EmailViewModel vm) { try { var to = ParseAddress(vm.Email); if (to == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Missing 'to' field!")); } var userId = User.Identity.GetUserId(); var order = _unitOfWork.Orders.GetOrderFor(userId, vm.id, User.GetUserRole()); if (order == null || order.Transferee == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found")); } OrdersTransfereeItineraryViewModel viewModel = BuildItineraryFromOrder(order); viewModel.Id = vm.id; viewModel.IsPdf = true; viewModel.TransfereeName = order.Transferee.FullName; string filename = "Itinerary" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf"; var pdf = new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel); byte[] pdfBytes = pdf.BuildFile(ControllerContext); MemoryStream stream = new MemoryStream(pdfBytes); EmailHelper EH = new EmailHelper(); EH.SendEmail_FS(to, vm.Subject, vm.Message, SendGrid.MimeType.Html, filename, pdfBytes); viewModel.IsPdf = false; return(PartialView("~/views/PDF/PDFItinerary.cshtml", viewModel)); } catch (Exception ex) { ModelState.Clear(); return(null); } }