// 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)); }
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)); }
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")); } }