public CartsController(ApplicationDbContext db, UserManager <ApplicationUser> userManager) { _db = db; _userManager = userManager; _makeOrderVm = new MakeOrderVm(); }
private async Task <List <ShoppingCartItem> > GetAllShoppingitems(MakeOrderVm makeOrderVm) { // get all shoppingcartitems for user return(await _db.ShoppingCartItems .Include(s => s.MenuItem) .Where(s => s.ApplicationUserId == makeOrderVm.ApplicationuserId).ToListAsync()); }
public async Task <IActionResult> IndexPost(MakeOrderVm makeOrderVm) { //if (!ModelState.IsValid) // return View(_makeOrderVm); Order order = new Order() { ApplicationUserId = makeOrderVm.ApplicationuserId, Orderdate = DateTime.Now, PickUpTime = makeOrderVm.Order.PickUpTime, CouponCode = makeOrderVm.Order.CouponCode, Comments = makeOrderVm.Order.Comments, OrderStatus = StaticDetails.StatusSubmitted, TotalPrice = makeOrderVm.Order.TotalPrice }; await _db.Orders.AddAsync(order); await _db.SaveChangesAsync(); List <ShoppingCartItem> allShoppingCartItemsForUser = await GetAllShoppingitems(makeOrderVm); List <PurchasedOrderItem> purchasedOrderItems = await MappShopItemToPurchasedItem(order, allShoppingCartItemsForUser); try { await _db.PurchasedOrderItems.AddRangeAsync(purchasedOrderItems); _db.ShoppingCartItems.RemoveRange(allShoppingCartItemsForUser); await _db.SaveChangesAsync(); HttpContext.Session.SetInt32("CartCount", 0); //return RedirectToAction("Index", "Home"); return(RedirectToAction("Confirm", "Orders", new { orderId = order.Id })); } catch (Exception ex) { return(View(_makeOrderVm)); throw; } }