コード例 #1
0
        public async Task <IHttpActionResult> AllFoodServed(int order_id)
        {
            //add to order

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var results = from foodordered in db.food_ordered
                          where (order_id == foodordered.order_id)
                          select new MenuBindingModels.Foodserved
            {
                fdId   = foodordered.food_ordered_id,
                served = foodordered.served
            };

            var OrderedFoodList = await results.ToListAsync();

            foreach (var i in OrderedFoodList)
            {
                if (i.served == false)
                {
                    FoodOrdered food = db.food_ordered.Find(i.fdId);
                    food.served = true;
                    db.SaveChanges();
                }
            }
            Orders ordercomplete = db.Orders.Find(order_id);

            ordercomplete.completed = true;
            db.SaveChanges();

            return(Ok("Order completed"));
        }
コード例 #2
0
        public async Task <IHttpActionResult> PostAddOneExtraFoodOrder(FoodOrdered food)
        {
            //add to order

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            food.newly_added = true;
            db.food_ordered.Add(food);
            db.SaveChanges();
            var    order_id = food.order_id;
            Orders or       = db.Orders.Find(order_id);

            or.recently_changed = true;
            db.SaveChanges();
            //get current food and prices
            var results = from o in db.Orders
                          join fo in db.food_ordered on o.order_id equals fo.order_id
                          join op in db.outlet_product on fo.outlet_product_id equals op.outlet_product_id
                          join mp in db.merchant_product on op.merchant_product_id equals mp.merchant_product_id
                          join m in db.Merchants on mp.merchant_id equals m.merchant_id
                          join outlet in db.Outlets on op.outlet_id equals outlet.outlet_id
                          where o.order_id == order_id
                          select new MenuBindingModels.CalculateBill
            {
                order_id      = o.order_id,
                order_bill    = o.total_bill,
                outlet_sc     = outlet.servicecharge,
                outlet_gst    = outlet.gst,
                mp_price      = mp.price,
                food_quantity = fo.quantity
            } into t1
            group t1 by t1.order_id into g
            select g.ToList();

            var OrderedFoodList = await results.ToListAsync();

            var     foodList = OrderedFoodList.First();
            decimal foodsum  = 0;

            //calculate bill
            foreach (var fooditem in foodList)
            {
                foodsum += fooditem.mp_price * fooditem.food_quantity;
            }
            foodsum += foodsum * foodList.First().outlet_sc / 100;
            foodsum += foodsum * foodList.First().outlet_gst / 100;
            //get order
            Orders order = db.Orders.Find(order_id);

            //save bill
            order.total_bill = Math.Round(foodsum, 2);

            await db.SaveChangesAsync();

            return(Ok());
        }
コード例 #3
0
        public string Order(IEnumerable <FoodItems> fdList)
        {
            OrdersContext      o1    = new OrdersContext();
            FoodOrdered        f1    = new FoodOrdered();
            List <FoodOrdered> FLIst = new List <FoodOrdered>();

            o1.PlaceOrder(f1);
            return("Order Placed");
        }
コード例 #4
0
 public void Handle(FoodOrdered e)
 {
     AddItems(e.Id,
              e.Items.Select(drink => new TabItem
     {
         MenuNumber  = drink.MenuNumber,
         Description = drink.Description,
         Price       = drink.Price
     }),
              t => t.InPreparation);
 }
コード例 #5
0
ファイル: TabReadModel.cs プロジェクト: sonbua/Reusables
        public void Handle(FoodOrdered @event)
        {
            var tab = _database.Set <Tab>().GetById(@event.TabId);
            var foodInPreparation =
                @event.Items.Select(item =>
                                    new TabItem
            {
                MenuNumber  = item.MenuNumber,
                Description = item.Description,
                Price       = item.Price
            });

            tab.InPreparation.AddRange(foodInPreparation);
        }
コード例 #6
0
        private IList <FoodOrdered> ConvertToFoodOrderedModel(string value)
        {
            var rows = value.Split(',');
            List <FoodOrdered> menuList = new List <FoodOrdered>();

            foreach (var val in rows)
            {
                FoodOrdered menu = new FoodOrdered();
                var         arr  = val.Split('_');
                menu.id   = arr[0];
                menu.Item = arr[1];

                menuList.Add(menu);
            }

            return(menuList);
        }
コード例 #7
0
        public void Handle(FoodOrdered @event)
        {
            var todoListByTab = _database.Set <TodoList>().FirstOrDefault(@group => @group.TabId == @event.TabId);
            var todoItems     = @event.Items.Select(item => (TodoItem)item);

            if (todoListByTab != null)
            {
                todoListByTab.Items.AddRange(todoItems);
                return;
            }

            _database.Set <TodoList>()
            .Add(new TodoList
            {
                Id    = Guid.NewGuid(),
                TabId = @event.TabId,
                Items = todoItems.ToList()
            });
        }
コード例 #8
0
        public async Task <IHttpActionResult> FoodServed(MenuBindingModels.FoodServed fo)
        {
            //add to order

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            FoodOrdered getfood = db.food_ordered.Find(fo.food_ordered_id);

            getfood.served = true;

            db.SaveChanges();
            var results = from foodordered in db.food_ordered
                          where (fo.order_id == foodordered.order_id)
                          select new MenuBindingModels.Foodserved
            {
                served = foodordered.served
            };

            var OrderedFoodList = await results.ToListAsync();

            var checker = false;

            foreach (var i in OrderedFoodList)
            {
                if (i.served == false)
                {
                    checker = true;
                }
            }
            if (checker == false)
            {
                var ordercomplete = db.Orders.Find(fo.order_id);
                ordercomplete.completed = true;
                db.SaveChanges();
            }

            return(Ok(fo));
        }
コード例 #9
0
        public async Task <IHttpActionResult> PostCancelOrder(int orderId)
        {
            var results = from foodordered in db.food_ordered
                          where (orderId == foodordered.order_id)
                          select new
            {
                foodId = foodordered.food_ordered_id
            };

            var OrderedFoodList = await results.ToListAsync();

            foreach (var i in OrderedFoodList)
            {
                FoodOrdered food = db.food_ordered.Find(i.foodId);
                if (food != null)
                {
                    //remove food in order
                    db.food_ordered.Remove(food);
                    db.SaveChanges();
                }
            }
            //remove order
            Orders getorder = db.Orders.Find(orderId);

            if (getorder != null)
            {
                db.Orders.Remove(getorder);
                await db.SaveChangesAsync();

                return(Ok("Removed"));
            }
            else
            {
                return(Ok("Orders not found"));
            }
        }
コード例 #10
0
 private void Ordered(FoodOrdered ordered)
 {
     new ScheduledFoodDelivery(Rng.Int(10, 21), ordered.Food);
 }
コード例 #11
0
 public void Apply(FoodOrdered e)
 {
     outstandingFood.AddRange(e.Items);
 }
コード例 #12
0
        public async Task <IHttpActionResult> PostRemoveOrderFood(int foodOrderedID)
        {
            //add to order

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            FoodOrdered getfood = db.food_ordered.Find(foodOrderedID);

            if (getfood != null)
            {
                var orderid = getfood.order_id;
                db.food_ordered.Remove(getfood);

                //recalculate order price

                db.SaveChanges();
                var checklast = from fo in db.food_ordered
                                join o in db.Orders on fo.order_id equals o.order_id
                                where o.order_id == orderid
                                select new
                {
                    fo_order = fo.food_ordered_id
                };
                var foodl = checklast.ToArray();

                Orders order = db.Orders.Find(orderid);
                if (foodl.Length == 0)
                {
                    db.Orders.Remove(order);
                }
                else
                {
                    var results = from o in db.Orders
                                  join fo in db.food_ordered on o.order_id equals fo.order_id
                                  join op in db.outlet_product on fo.outlet_product_id equals op.outlet_product_id
                                  join mp in db.merchant_product on op.merchant_product_id equals mp.merchant_product_id
                                  join m in db.Merchants on mp.merchant_id equals m.merchant_id
                                  join outlet in db.Outlets on op.outlet_id equals outlet.outlet_id
                                  where o.order_id == orderid
                                  select new MenuBindingModels.CalculateBill
                    {
                        order_id      = o.order_id,
                        order_bill    = o.total_bill,
                        outlet_sc     = outlet.servicecharge,
                        outlet_gst    = outlet.gst,
                        mp_price      = mp.price,
                        food_quantity = fo.quantity
                    } into t1
                    group t1 by t1.order_id into g
                    select g.ToList();

                    var OrderedFoodList = await results.ToListAsync();

                    var     foodList = OrderedFoodList.First();
                    decimal foodsum  = 0;

                    foreach (var food in foodList)
                    {
                        foodsum += food.mp_price * food.food_quantity;
                    }
                    foodsum += foodsum * foodList.First().outlet_sc / 100;
                    foodsum += foodsum * foodList.First().outlet_gst / 100;

                    order.total_bill = foodsum;
                }
                await db.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(Ok("404 food not found"));
            }
        }
コード例 #13
0
        public async Task <IHttpActionResult> GetNewlyAddedFoodOrder(int outlet_id)
        {
            var results = from o in db.Orders
                          join p in db.Promocodes on o.promocode_id equals p.promocodes_id into joined
                          from p in joined.DefaultIfEmpty()
                          join fo in db.food_ordered on o.order_id equals fo.order_id
                          join op in db.outlet_product on fo.outlet_product_id equals op.outlet_product_id
                          join outlet in db.Outlets on op.outlet_id equals outlet.outlet_id
                          join mp in db.merchant_product on op.merchant_product_id equals mp.merchant_product_id
                          join m in db.Merchants on mp.merchant_id equals m.merchant_id
                          where outlet.outlet_id == outlet_id
                          where o.recently_changed == true
                          where fo.newly_added == true
                          select new MenuBindingModels.OpenCloseOrder
            {
                name = mp.name,
                merchant_product_id = mp.merchant_product_id,
                product_image       = mp.product_image,
                dish_completed      = fo.served,
                price             = mp.price,
                merchant_id       = mp.merchant_id,
                quantity          = fo.quantity,
                order_id          = o.order_id,
                order_bill        = o.total_bill,
                order_time        = o.order_time,
                table_id          = o.table_id,
                order_status      = o.completed,
                food_order_id     = fo.food_ordered_id,
                order_comment     = o.comments,
                food_comments     = fo.comments,
                merchant_name     = m.biz_name,
                discount          = p.discount,
                promocode_name    = p.promocode_name,
                promo_start_date  = p.start_date,
                promo_expire_date = p.expire_date,
                gst       = outlet.gst,
                svscharge = outlet.servicecharge
            } into t1
            group t1 by t1.order_id into g
            select g.ToList();

            var OrderedFoodList = await results.ToListAsync();

            if (results == null)
            {
                return(NotFound());
            }
            // change order updated & recently add boolean to false
            //change json to array
            //var ofa = OrderedFoodList.ToArray();
            int    order_idd = OrderedFoodList[0][0].order_id;
            Orders ord       = db.Orders.Find(order_idd);

            ord.recently_changed = false;
            var dishes = from dis in db.food_ordered
                         where dis.order_id == order_idd
                         select new MenuBindingModels.NewlyAdded
            {
                dish_id     = dis.food_ordered_id,
                newly_added = dis.newly_added
            };
            var dishCList = dishes.ToArray();
            await db.SaveChangesAsync();

            for (int yt = 0; yt < dishCList.Length; yt++)
            {
                if (dishCList[yt].newly_added == true)
                {
                    int         food_ord_id = dishCList[yt].dish_id;
                    FoodOrdered fds         = db.food_ordered.Find(food_ord_id);
                    fds.newly_added = false;
                    db.SaveChanges();
                }
            }
            return(Ok(OrderedFoodList));
        }
コード例 #14
0
ファイル: TabAggregate.cs プロジェクト: sonbua/Reusables
 private void When(FoodOrdered @event)
 {
     _outstandingFood.AddRange(@event.Items);
 }
コード例 #15
0
ファイル: Tab.cs プロジェクト: ronanmoriarty/CQSplit
 public void Apply(FoodOrdered @event)
 {
     _foodAwaitingServing.AddRange(@event.Items);
 }