Example #1
0
        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));
        }
Example #2
0
        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());
        }