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"));
        }
示例#3
0
        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);
        }
示例#7
0
        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"));
        }