// GET Orders/completeOrder/6 public async Task <IActionResult> CompleteOrder() { // Create new instance of the view model CompleteOrderViewModel model = new CompleteOrderViewModel(_context, await GetCurrentUserAsync()); return(View(model)); }
public async Task <IActionResult> CompleteOrder(CompleteOrderViewModel viewModel) { if (ModelState.IsValid) { var user = await GetCurrentUserAsync(); var currentOrder = await _context.Order.Include("LineItems.Product").SingleOrDefaultAsync(o => o.PaymentType == null && o.User.Id == user.Id); if (currentOrder == null || currentOrder.LineItems == null) { return(NotFound()); } foreach (var item in currentOrder.LineItems) { item.Product.Quantity = item.Product.Quantity - 1; _context.Product.Update(item.Product); } var selectedPaymentType = await _context.PaymentType.SingleOrDefaultAsync(pt => pt.PaymentTypeID == viewModel.SelectedPaymentTypeId); currentOrder.PaymentType = selectedPaymentType; _context.Order.Update(currentOrder); await _context.SaveChangesAsync(); var orderID = new { orderID = currentOrder.OrderID }; return(RedirectToAction("OrderCompleted", orderID)); } CompleteOrderViewModel model = new CompleteOrderViewModel(_context, await GetCurrentUserAsync()); return(View(model)); }
// GET: Order/Complete - edit the existing form // This action sends the user to public async Task <IActionResult> AddPaymentType(int?id) { if (id == null) { return(NotFound()); } // Convert the id to an int id = Convert.ToInt32(id); // Get the open order and validate that one is returned Order openOrder = _context.Order.Where(o => o.OrderId == id).SingleOrDefault(); if (openOrder == null) { return(NotFound()); } // get the current user ApplicationUser user = await GetCurrentUserAsync(); CompleteOrderViewModel paymentTypes = new CompleteOrderViewModel(_context, user, openOrder); return(View(paymentTypes)); }
public async Task <IActionResult> Complete(int id, CompleteOrderViewModel model) { if (id != model.Order.OrderId) { return(NotFound()); } ModelState.Remove("Order.User"); if (ModelState.IsValid) { try { _context.Update(model.Order); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(model.Order.OrderId)) { return(NotFound()); } else { throw; } } return(RedirectToAction("ThankYou")); } ViewData["PaymentTypeId"] = new SelectList(_context.PaymentType, "PaymentTypeId", "AccountNumber", model.Order.PaymentTypeId); return(View(model)); }
public IActionResult Complete(int id) { CompleteOrderViewModel viewModel = new CompleteOrderViewModel { OrderId = id }; return(this.View(viewModel)); }
public IActionResult Index() { var oh = HttpContext.Session.Get <OrderHandler>("OrderHandler"); Console.WriteLine("OrderHandlerObject: CustomerID: {0}", oh.CustomerID); Console.WriteLine("OrderHandlerObject: LocationID: {0}", oh.LocationID); Console.WriteLine("OrderHandlerObject: TotalOrderCost: {0}", oh.TotalOrderValue); foreach (var pizza in oh.Pizzas) { Console.WriteLine("OrderHandlerObject: pizza crustID: {0}", pizza.CrustId); Console.WriteLine("OrderHandlerObject: pizza sauceID: {0}", pizza.SauceId); Console.WriteLine("OrderHandlerObject: pizza cheese1: {0}", pizza.Cheese1); Console.WriteLine("OrderHandlerObject: pizza cheese2: {0}", pizza.Cheese2); Console.WriteLine("OrderHandlerObject: pizza topping1: {0}", pizza.Topping1); Console.WriteLine("OrderHandlerObject: pizza topping2: {0}", pizza.Topping2); Console.WriteLine("OrderHandlerObject: pizza topping3: {0}", pizza.Topping3); Console.WriteLine("OrderHandlerObject: pizza quantity: {0}", pizza.Quantity); } //Check if Order is too Expensive JsonHandler jh = new JsonHandler(); if (oh.TotalOrderValue > jh.JsonObject.MAX_ORDER_TOTAL) { Console.WriteLine("totalOrderCost exceeds {0}", jh.JsonObject.MAX_ORDER_TOTAL); ViewBag.CompleteOrderProblem = string.Format("totalOrderCost ${0} exceeds limit of ${1}", oh.TotalOrderValue, jh.JsonObject.MAX_ORDER_TOTAL); ViewBag.PizzaProblem = string.Format("totalOrderCost ${0} exceeds limit of ${1}", oh.TotalOrderValue, jh.JsonObject.MAX_ORDER_TOTAL); HttpContext.Session.SetInt32("CostOfOrder", (int)oh.TotalOrderValue); oh.TotalOrderValue -= oh.Pizzas.Last().TotalPizzaCost.Value *oh.Pizzas.Last().Quantity; oh.Pizzas.RemoveAt(oh.Pizzas.Count - 1); HttpContext.Session.Set <OrderHandler>("OrderHandler", oh); return(RedirectToAction("Index", "Pizza")); } //Check inventory availability here OrderInventoryHandler oih = new OrderInventoryHandler(oh); if (!oih.GetInventorySufficiency()) { Console.WriteLine("Inventory not sufficient"); ViewBag.BadLocation = "The Store does not have enough inventory to complete that order."; ViewBag.PizzaProblem = "The Store does not have enough inventory to complete that order."; HttpContext.Session.SetInt32("InventoryProblem", 1); oh.TotalOrderValue -= oh.Pizzas.Last().TotalPizzaCost.Value *oh.Pizzas.Last().Quantity; oh.Pizzas.RemoveAt(oh.Pizzas.Count - 1); HttpContext.Session.Set <OrderHandler>("OrderHandler", oh); return(RedirectToAction("Index", "Pizza")); } var completeOrder = new CompleteOrderViewModel(oh); return(View(completeOrder)); }
public IActionResult Complete2(int shippingDetailId) { var model = new CompleteOrderViewModel { ShippingDetail = _shippingDetailService.GetById(shippingDetailId).Data, Cart = _cartSessionHelper.GetCart("cart") }; return(View(model)); }
public IActionResult CompleteOrder(int id) { Employee driverToCompleteOrder = context.Employees.FirstOrDefault(e => e.EmployeeID == id); Order OrderToBeCompleted = context.Orders.FirstOrDefault(o => o.OrderID == driverToCompleteOrder.OrderID); Trailer TrailerToBeUnassigned = context.Trailers.FirstOrDefault(t => t.TrailerID == OrderToBeCompleted.TrailerForLoadID); CompleteOrderViewModel completeOrderViewModel = new CompleteOrderViewModel(driverToCompleteOrder, OrderToBeCompleted, TrailerToBeUnassigned); return(View(completeOrderViewModel)); }
public IActionResult Index(CompleteOrderViewModel model) { var oh = HttpContext.Session.Get <OrderHandler>("OrderHandler"); //Make order OrderMaker om = new OrderMaker(oh); om.MakeOrder(); //Subtract Inventory OrderInventoryHandler oih = new OrderInventoryHandler(oh); oih.SubtractInventory(); return(RedirectToAction("Index", "ReviewOrder")); }
public ActionResult CompleteOrder(PaymentInformation model) { if (ModelState.IsValid) { var vm = new CompleteOrderViewModel() { Cart = model.Cart }; Session["shoppingCart"] = new Cart(); return(View(vm)); } else { var viewModel = new PaymentInformation(); viewModel.ExpirationYear = DateTime.Now.Year; return(View("Checkout", viewModel)); } }
public async Task <IActionResult> Complete(int?id) { if (id == null) { return(NotFound()); } var order = await _context.Order.SingleOrDefaultAsync(m => m.OrderId == id); CompleteOrderViewModel model = new CompleteOrderViewModel(); model.Order = order; if (order == null) { return(NotFound()); } ViewData["PaymentTypeId"] = new SelectList(_context.PaymentType, "PaymentTypeId", "AccountNumber", order.PaymentTypeId); return(View(model)); }
public IActionResult CompleteOrder(CompleteOrderViewModel completeOrderViewModel) { Employee driverToCompleteOrder = context.Employees.FirstOrDefault(e => e.EmployeeID == completeOrderViewModel.EmployeeId); Order orderToBeCompleted = context.Orders.FirstOrDefault(o => o.OrderID == driverToCompleteOrder.OrderID); Trailer trailerToBeUnassigned = context.Trailers.FirstOrDefault(t => t.TrailerID == orderToBeCompleted.TrailerForLoadID); driverToCompleteOrder.OrderID = 0; driverToCompleteOrder.WorkStatus = "Available"; orderToBeCompleted.Completed = true; //orderToBeCompleted.TrailerForLoadID = 0; trailerToBeUnassigned.TrailerStatus = "Available"; context.SaveChanges(); return(Redirect("/Employee")); }
public CompleteOrderCommand(CompleteOrderViewModel model) { _id = model.Id; }
public static void CreateCompleteOrder() { if (_completeOrder == null) { _completeOrder = new CompleteOrderViewModel(); } }
public static void ClearCompleteOrder() { if (_designer == null) { return; } _completeOrder.Cleanup(); _completeOrder = null; }