Exemple #1
0
        // GET: Thankyou
        public ActionResult Index(FinalizeViewModel model, int id)
        {
            //Validate customer owns this order
            var order    = pizzaDb.Orders.Single(o => o.OrderId == id);
            var pizza    = pizzaDb.Pizzas.Single(o => o.PizzaId == id);
            var current  = user;
            var username = current.UserName;

            bool isValid = pizzaDb.Orders.Any(
                o => o.OrderId == order.OrderId && o.UserName == username);

            var deliveryPerson = pizzaDb.Deliveries.SingleOrDefault(d => d.Area == order.Area);
            var userPerson     = pizzaDb.Users.SingleOrDefault(p => p.Name == order.UserName);

            if (isValid)
            {
                var viewModel = new ThankYouViewModel()
                {
                    Area     = order.Area,
                    Order    = order,
                    Delivery = deliveryPerson,
                    Users    = userPerson,
                    Pizza    = pizza
                };
                return(View(viewModel));
            }
            else
            {
                return(View("Error"));
            }
        }
 protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 {
     if (value != null)
     {
         if (value.GetType() == typeof(RespondViewModel))
         {
             RespondViewModel vm = (RespondViewModel)value;
             if (vm.SubmitResponse)
             {
                 foreach (ScreeningRequestPersonEntityViewModel srpevm in vm.Responses.Values)
                 {
                     if (srpevm.ScreeningResultID == ScreeningResult.ID_PENDING)  // TODO decouple from hard-coded id numbers
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                 }
             }
         }
         else if (value.GetType() == typeof(ConsolidateViewModel))
         {
             ConsolidateViewModel vm = (ConsolidateViewModel)value;
             if (vm.SendForFinalDecision)
             {
                 foreach (RecommendationViewModel rvm in vm.Recommendations.Values)
                 {
                     if (rvm.ScreeningResultID == ScreeningResult.ID_PENDING)
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                 }
             }
         }
         else if (value.GetType() == typeof(FinalizeViewModel))
         {
             FinalizeViewModel vm = (FinalizeViewModel)value;
             if (vm.Finalize)
             {
                 foreach (FinalDecisionViewModel fdvm in vm.FinalDecisions.Values)
                 {
                     if (fdvm.ScreeningResultID == ScreeningResult.ID_PENDING)
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                     if (fdvm.ScreeningSupportStatusID == ScreeningSupportStatus.ID_PENDING)
                     {
                         return(new ValidationResult(SUPPORT_STATUS_ERROR_MESSAGE));
                     }
                 }
             }
         }
     }
     return(ValidationResult.Success);
 }
        public ActionResult AddressAndPayment()
        {
            var areaList  = pizzaDb.Area.ToList();
            var payMethod = pizzaDb.PaymentMethods.ToList();
            var viewModel = new FinalizeViewModel()
            {
                PaymentMethods = payMethod,
                Area           = areaList
            };

            return(View(viewModel));
        }
Exemple #4
0
        public ActionResult RequestAction(FinalizeViewModel vm)
        {
            if (ModelState.IsValid)
            {
                // update commentary
                foreach (FinalDecisionViewModel fdvm in vm.FinalDecisions.Values)
                {
                    ScreeningRequestPersonFinalDecision srpfd;
                    if (fdvm.Id > 0)
                    {
                        srpfd = this.screeningTasks.GetFinalDecision(fdvm.Id);
                    }
                    else
                    {
                        srpfd = new ScreeningRequestPersonFinalDecision();
                    }

                    if (srpfd.Version > fdvm.Version)
                    {
                        ModelState.AddModelError("somekey", "Data has changed since you loaded this page.  Please reload before saving again.  Try pressing the back button to recover your edits.");
                        return(RequestAction(vm));
                    }

                    srpfd.Commentary             = fdvm.Commentary;
                    srpfd.Version                = fdvm.Version;
                    srpfd.RequestPerson          = this.requestPersonTasks.GetRequestPerson(fdvm.RequestPersonID);
                    srpfd.ScreeningResult        = this.screeningTasks.GetScreeningResult(fdvm.ScreeningResultID);
                    srpfd.ScreeningSupportStatus = this.screeningTasks.GetScreeningSupportStatus(fdvm.ScreeningSupportStatusID);
                    this.screeningTasks.SaveOrUpdateFinalDecision(srpfd, User.Identity.Name);
                }
                if (vm.Finalize)
                {
                    ViewBag.SuccessMessage = "Screening request complete.";

                    // update status
                    this.requestTasks.SaveRequestHistory(vm.Id, this.requestTasks.GetRequestStatus(RequestStatus.NAME_COMPLETED).Id, User.Identity.Name);

                    // send email notification
                    this.emailTasks.SendRequestCompletedEmail(User.Identity.Name, vm.Id);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    // redirecting instead of calling RequestAction directly, as this starts a new transaction.
                    // this is needed for the Version column validation to work properly.
                    return(RedirectToAction("RequestAction", new { id = vm.Id }));
                }
            }
            return(RequestAction(vm.Id));
        }
Exemple #5
0
        public ActionResult RequestAction(int id)
        {
            Request request = this.requestTasks.Get(id);

            if (request != null)
            {
                ViewBag.Request           = request;
                ViewBag.ScreeningEntities = ScreeningEntity.GetNames(request.GetCreatedDate());
                this.screeningTasks.CreateScreeningRequestPersonFinalDecisionsForRequest(request, User.Identity.Name);  // prepopulate results from recommendations
                FinalizeViewModel cvm = new FinalizeViewModel(request,
                                                              this.screeningTasks.GetScreeningResults(request.GetCreatedDate()),
                                                              this.screeningTasks.GetScreeningSupportStatuses());
                return(View(cvm));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }
        public ActionResult AddressAndPayment(FormCollection values)
        {
            var cart      = ShoppingCart.GetCart(this.HttpContext);
            var viewModel = new FinalizeViewModel()
            {
                Shopping = cart.GetCartItems()
            };

            try
            {
                var area          = Request.Form["Area"];
                var paymentMethod = Request.Form["PaymentMethods"];

                var current  = user;
                var username = current.UserName;
                var order    = new Order()
                {
                    Area           = area,
                    PaymentMethods = paymentMethod,
                    OrderDate      = DateTime.Now,
                    UserName       = username,
                    Total          = cart.GetTotal()
                };
                //Save order
                pizzaDb.Orders.Add(order);
                pizzaDb.SaveChanges();
                //Process order

                cart.CreateOrder(order);
                return(RedirectToAction("Index", "ThankYou", new { viewModel, id = order.OrderId }));
            }
            catch
            {
                // Invalid - redisplay with errors
                return(View("Error"));
            }
        }