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);
        }
Example #5
0
        public OrdersTransfereeItineraryViewModel Build(Order order)
        {
            if (order == null)
            {
                return(null);
            }

            var itinerary = GetItinerary(order);
            OrdersTransfereeItineraryViewModel vm = new OrdersTransfereeItineraryViewModel();

            vm.Itinerary = itinerary;
            return(vm);
        }
Example #6
0
        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));
        }
Example #7
0
        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)
            });
        }
Example #8
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);
        }
Example #10
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);
            }
        }