public static Models.PizzasSold MapPizzaSold(PizzaSold pizza) { return(new Models.PizzasSold { OrderId = pizza.OrderId, PizzaName = pizza.PizzaName, PizzaSize = pizza.PizzaSize, PizzaCrust = pizza.PizzaCrust, TotalCost = pizza.TotalCost, Order = pizza.Order, PizzaCrustNavigation = pizza.PizzaCrustNavigation, PizzaSizeNavigation = pizza.PizzaSizeNavigation }); }
public async Task <IActionResult> Create([Bind("OrderId,StoreId,UserId,TotalCost,OrderTimestamp,PizzaType,PizzaSize,PizzaCrust")] Orders orders) { //PizzasSold newPizza = new PizzasSold(); PizzaSold newPizza = new PizzaSold(); if (ModelState.IsValid) { //ViewData["StoreId"] = new SelectList(_context.Stores, "StoreLocation", "StoreLocation", orders.StoreId); //ViewData["UserId"] = new SelectList(_context.Users, "UserId", "UserName", orders.UserId); //ViewData["PizzaType"] = new SelectList(_context.PizzasSold, "PresetId", "PresetName", newPizza.PizzaName); //ViewData["PizzaSize"] = new SelectList(_context.Sizes, "SizeId", "SizeName", newPizza.PizzaSize); //ViewData["PizzaCrust"] = new SelectList(_context.CrustTypes, "CrustId", "CrustName", newPizza.PizzaCrust); //newPizza.OrderId = orders.OrderId; //orders.PizzasSold.Add(newPizza); //orders.TotalCost += newPizza.TotalCost; _context.Add(orders); _context.Add(Mapper.MapPizzaSold(newPizza)); //orders.PizzasSold.Add(Mapper.MapPizzaSold(ModelState)); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["StoreId"] = new SelectList(_context.Stores, "StoreLocation", "StoreLocation", orders.Store.StoreId); ViewData["UserId"] = new SelectList(_context.Users, "UserId", "UserName", orders.UserId); ViewData["PizzaType"] = new SelectList(_context.PizzasSold, "PresetId", "PresetName", newPizza.PizzaName); ViewData["PizzaSize"] = new SelectList(_context.Sizes, "SizeId", "SizeName", newPizza.PizzaSize); ViewData["PizzaCrust"] = new SelectList(_context.CrustTypes, "CrustId", "CrustName", newPizza.PizzaCrust); //newPizza.Order = orders; //newPizza.OrderId = orders.OrderId; //orders.PizzasSold.Add(Mapper.MapPizzaSold(newPizza)); //orders.TotalCost += newPizza.TotalCost; return(View(orders)); }
public IActionResult CreatePizzaPartial(PizzaSoldViewModel pizza) { if (ModelState.IsValid) { var newPizza = new PizzaSold(); newPizza.PizzaName = pizza.PizzaName; newPizza.PizzaSize = pizza.PizzaSize; newPizza.PizzaCrust = pizza.PizzaCrust; ViewData["PizzaName"] = new SelectList(_context.PresetPizzas, "PresetName", "PresetName", newPizza.PizzaName); newPizza.TotalCost = CalculateTotalCost(newPizza.PizzaSize, newPizza.PizzaCrust); Globals.pizzaList.Add(newPizza); return(RedirectToAction(nameof(PizzaAdded))); } else { return(View()); } }
public void CreateOrder() { if (currentUser != null) { var crustTypeList = crustRepo.GetCrustTypes(); var sizeList = sizeRepo.GetSizes(); var storeList = storeRepo.GetStores(); var presetList = presetRepo.GetPresetPizzas(); if (crustTypeList.Any() && presetList.Any() && sizeList.Any() && storeList.Any()) { int storeChoice = ChooseStoreLocation(); if (!CanOrderNow(storeChoice)) { Console.WriteLine("Cannot order from the same location twice in 24 hours."); return; } int presetChoice = ChoosePresetPizza(); int sizeChoice = ChooseSize(); int crustChoice = ChooseCrust(); //var pizzaName = presetList.ElementAt(presetChoice - 1).PresetName; //var sizeCost = sizeList.ElementAt(sizeChoice - 1).SizeCost; //var crustCost = crustTypeList.ElementAt(crustChoice - 1).CrustCost; var pizzaName = presetRepo.GetPresetPizzas(presetChoice).First().PresetName; var sizeCost = sizeRepo.GetSizes(sizeChoice).First().SizeCost; var crustCost = crustRepo.GetCrustTypes(crustChoice).First().CrustCost; var newPizza = new PizzaSold { PizzaName = pizzaName, PizzaSize = sizeChoice, PizzaCrust = crustChoice, TotalCost = sizeCost + crustCost }; if (newPizza.TotalCost > Globals.MAX_ORDER_COST) { Console.WriteLine($"Your order cannot exceed {Globals.MAX_ORDER_COST}. Please try again."); return; } var newOrder = new Order(); newOrder.PizzasSold.Add(Mapper.MapPizzaSold(newPizza)); newOrder.UserId = currentUser.UserId; newOrder.StoreId = storeChoice; newOrder.TotalCost = newPizza.TotalCost + (newPizza.TotalCost * Globals.SALES_TAX); currentUser.Orders.Add(Mapper.MapOrder(newOrder)); userRepo.ModifyUser(currentUser); orderRepo.AddOrder(newOrder); Console.WriteLine("Thank you for ordering!"); } else { Console.WriteLine("Something has gone wrong with the data. Please try again later."); } } else { Console.WriteLine("Please sign in before we take your order"); } }