public IActionResult Submit() { using (var transaction = _db.Database.BeginTransaction()){ _db.Orders.Add(new Order() { OrderCreated = UsersOrder.Storage().OrderCreated, LocationId = UsersOrder.Storage().Location.Id, UserId = CurrentUser.Storage().Id }); _db.SaveChanges(); var fetchOrderId = _db.Orders.Single(o => o.OrderCreated == UsersOrder.Storage().OrderCreated).Id; foreach (var PizzaObject in UsersOrder.Storage().Pizzas) { _db.Pizzas.Add(new Pizza() { CrustId = PizzaObject.Crust.Id, SizeId = PizzaObject.Size.Id, Cost = PizzaObject.Cost, Description = PizzaObject.Description, OrderId = fetchOrderId }); } _db.SaveChanges(); transaction.Commit(); } CurrentUser.Storage().UserAbleToOrder = false; UsersOrder.DeleteStorage(); //remove order infomation return(RedirectToAction("Receipt", "Order")); }
public IActionResult AddPizzaToOrder(User a) { //we have the sizeid and crustid and a list of topping id //which the user selected //If the user reach this part that mean that //user can make an order if (UsersOrder.IsEmpty()) { UsersOrder.Storage().Location = _db.Locations.Single(l => l.Id == CurrentUser.Storage().SelectedLocation); // _order.Location.PhoneNumber = _db.Locations.Single(l => l.Id == CurrentUser.Storage().SelectedLocation).PhoneNumber; // _order.Location.Address = _db.Locations.Single(l => l.Id == a.SelectedLocation).Address; UsersOrder.Storage().OrderCreated = DateTime.Now; UsersOrder.Storage().User = CurrentUser.Storage(); // _order.Pizzas = new List<Pizza>(); //place the first pizza in order // AddPizzaToUsersOrder(ref a); } // else{ // AddPizzaToUsersOrder(ref a); // } //Check for max toppings if (!CheckSelections(a)) { return(RedirectToAction("Index", "Order")); } AddPizzaToUsersOrder(a); CurrentUser.Storage().Messages.MessageType = "AddedToOrder"; CurrentUser.Storage().Messages.MessageToUser = $"Added a {UsersOrder.Storage().Pizzas.Last().Size.Name} and {UsersOrder.Storage().Pizzas.Last().Crust.Name} pizza to your order!"; return(RedirectToAction("Index", "Order")); }
public UsersOrder GetUserOrder(Guid userId, Guid id) { UsersOrder userOrder = _db.Query <UsersOrder>("SELECT * FROM USERS_ORDER WHERE USER_ID = @USER_ID AND ID = @ID", new UsersOrder() { USER_ID = userId, ID = id }).SingleOrDefault(); return(userOrder); }
public JsonResult OrderWhileStaying(UsersOrder order) { tbl_UsersOrder tbl = new tbl_UsersOrder(); tbl.FoodItemName = order.FoodItemName; tbl.UserStay_ID = order.UserStay_ID; tbl.Cost = order.Cost; tbl.Description = order.Description; tbl.UserID = order.UserID; context.tbl_UsersOrder.Add(tbl); context.SaveChanges(); return(Json("OrderSaved")); }
public IActionResult Cart() { if (CurrentUser.Storage().Messages != null) { CurrentUser.Storage().Messages.MessageType = ""; } //if the user is wants to re-access the cart after a order he will be //sent back to the main index if (!CurrentUser.Storage().UserAbleToOrder) { return(RedirectToAction("Index", "Main")); } return(View(UsersOrder.Storage())); }
private void AddPizzaToUsersOrder(User a) { var newPizzaToPlace = new Pizza(); newPizzaToPlace.Crust = _db.Crusts.Single(c => c.Id == a.SelectedCrust); newPizzaToPlace.Cost += newPizzaToPlace.Crust.Price; newPizzaToPlace.Size = _db.Sizes.Single(s => s.Id == a.SelectedSize); newPizzaToPlace.Cost += newPizzaToPlace.Size.Price; newPizzaToPlace.Toppings = new List <Topping>(); newPizzaToPlace.Description = ""; foreach (var selectedToppingId in a.SelectedToppings) { var fetchTopping = _db.Toppings.Single(t => t.Id == selectedToppingId); newPizzaToPlace.Description += fetchTopping.Name + " "; newPizzaToPlace.Toppings.Add(fetchTopping); newPizzaToPlace.Cost += fetchTopping.Price; } UsersOrder.Storage().Pizzas.Add(newPizzaToPlace); }
public async Task <IActionResult> AddToOtrderAsync(string UserID, int id) { UserID = await TakeUserIDAsync(); if (UserID == null) { return(RedirectToAction("Login", "Account")); } UsersOrder order = new UsersOrder { UserId = UserID }; _context.Add(order); _context.SaveChanges(); int idOrder = order.UsersOrderID; // Yes it's here var item = await _context.Items.FindAsync(id); //Orders cart = new Orders //{ // ItemID = item.ItemID, // CountBuy_item = 1, // Price = item.Price * CountBuy_item, // StatusOrderID = 1, // UsersOrderID = idOrder //}; Orders cart = new Orders(); cart.ItemID = item.ItemID; cart.CountBuy_item = 1; cart.Price = item.Price * cart.CountBuy_item; cart.StatusOrderID = 1; cart.UsersOrderID = idOrder; var check = _context.Orders .Include(c => c.Items) .Include(c => c.UsersOrders) .Where(c => c.UsersOrders.UserId == UserID) .Where(o => o.StatusOrderID == 1) .FirstOrDefault(c => c.ItemID == item.ItemID); if (check == null) { _context.Add(cart); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else if (cart.ItemID == check.ItemID && cart.StatusOrderID == check.StatusOrderID) { check.CountBuy_item += 1; check.Price += cart.Price; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(RedirectToAction("Index", "Items")); }