public async Task <IActionResult> Order(CookieViewModel cookieVM) { if (ModelState.IsValid) { Order order = new Order(); _context.Order.Add(order); _context.SaveChanges(); List <Cookie> cookies = await _context.Cookie.Where(c => c.OutOfStock == false).ToListAsync(); CookieOrderViewModel cookieOrderVM = new CookieOrderViewModel { Cookies = cookies, CookieOrders = new List <CookieOrder>(), OrderId = order.OrderId }; for (int cookieCount = 0; cookieCount < cookies.Count; cookieCount++) { if (cookieVM.Cookies[cookieCount].Amount > 0) { CookieOrder cookieOrder = new CookieOrder { Cookie = cookies[cookieCount], OrderId = order.OrderId, CookieId = cookies[cookieCount].CookieId, NumberOfBoxes = cookieVM.Cookies[cookieCount].Amount }; _context.CookieOrder.Add(cookieOrder); cookieOrderVM.CookieOrders.Add(cookieOrder); order.TotalAmountDue = order.TotalAmountDue + (cookieVM.Cookies[cookieCount].Amount * cookies[cookieCount].CostPerBox); } } _context.Order.Update(order); _context.SaveChanges(); cookieOrderVM.TotalDue = order.TotalAmountDue; return(View("CookieOrder", cookieOrderVM)); } CookieViewModel cookieErrorVM = new CookieViewModel(await _context.Cookie.ToListAsync()); return(View("Index", cookieErrorVM)); }
public IActionResult CookieOrder(CookieOrderViewModel cookieOrderVM) { if (ModelState.IsValid) { Customer customer = new Customer { Name = cookieOrderVM.Name, Address = cookieOrderVM.Address, City = cookieOrderVM.City, Email = cookieOrderVM.Email, OrderId = cookieOrderVM.OrderId, Test = cookieOrderVM.Email == _configuration.GetSection("AppSettings").GetSection("AdminEmailAddress").Value ? true : false }; _context.Customer.Add(customer); _context.SaveChanges(); SendEmails(cookieOrderVM.Email, cookieOrderVM.OrderId, customer.CustomerId); return(View("ConfirmedOrder")); } return(View()); }