示例#1
0
        // GET: OrderMenus/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderMenu orderMenu = db.OrderMenu.Find(id);

            if (orderMenu == null)
            {
                return(HttpNotFound());
            }
            return(View(orderMenu));
        }
示例#2
0
        /// <summary>
        /// 随机获取三个
        /// </summary>
        /// <returns></returns>
        public static List <AbstractFood> GetFoods()
        {
            List <AbstractFood> foods   = OrderMenu.GetInstance().AllFoods;
            List <int>          foodIds = new List <int>();

            while (foodIds.Count != 3)
            {
                int id = new Random().Next(1, 4);
                if (!foodIds.Contains(id))
                {
                    foodIds.Add(id);
                }
            }
            return(foods.Where(u => foodIds.Contains(u.Id)).ToList());
        }
示例#3
0
        // GET: OrderMenus/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderMenu orderMenu = db.OrderMenus.Find(id);

            if (orderMenu == null)
            {
                return(HttpNotFound());
            }
            ViewBag.DishId  = new SelectList(db.Menus, "DishId", "Name", orderMenu.DishId);
            ViewBag.OrderId = new SelectList(db.Orders, "OrderId", "Category", orderMenu.OrderId);
            return(View(orderMenu));
        }
示例#4
0
        // GET: OrderMenus/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderMenu orderMenu = db.OrderMenus.Find(id);

            if (orderMenu == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ItemID  = new SelectList(db.Menus, "ItemID", "ItemName", orderMenu.ItemID);
            ViewBag.OrderID = new SelectList(db.Orders, "OrderID", "EmployeeID", orderMenu.OrderID);
            return(View(orderMenu));
        }
示例#5
0
        private void buttonPlaceOrder_Click(object sender, EventArgs e)
        {
            OrderMenu orderMenu = new OrderMenu();

            orderMenu.OrderNo = Convert.ToInt32(this.textBoxTableNo.Text);
            // orderMenu.ItemQuantity = Convert.ToInt32(this.textBoxQuantity.Text);

            OrderMenuRepo orderMenuRepo = new OrderMenuRepo();

            if (orderMenuRepo.Insert(orderMenu))
            {
                List <OrderMenu> orderMenuList = orderMenuRepo.GetAllOrderMenu();
                managerTabControl.SelectedIndex = 2;
                //this.dataGridViewOrderMenu.DataSource = orderMenuList;
            }
            else
            {
                MessageBox.Show("Not Inserted");
            }
        }
        public async Task <ActionResult <OrderReadDto> > PostOrder(OrderCreateDto orderCreateDto)
        {
            var order = mapper.Map <Order>(orderCreateDto);

            // get member Id
            var member = await memberApiRepo.GetMemberByEmailAsync(orderCreateDto.Email);

            if (member == null)
            {
                return(NotFound("Member is not found."));
            }

            order.MemberId = member.Id;

            await repository.PostOrderAsync(order);

            await repository.SaveChangesAsync();

            var orderMenus = orderCreateDto.OrderMenus;

            foreach (var item in orderMenus)
            {
                var orderMenu = new OrderMenu
                {
                    OrderId     = order.Id,
                    MenuId      = item.MenuId,
                    Quantity    = item.Quantity,
                    Price       = item.Price,
                    DateCreated = DateTime.Now
                };

                // add order details
                await repository.AddOrderMenuAsync(orderMenu);

                await repository.SaveChangesAsync();
            }

            var orderReadDto = mapper.Map <OrderReadDto>(order);

            return(CreatedAtAction(nameof(GetOrder), new { id = orderReadDto.Id }, orderReadDto));
        }
示例#7
0
 protected void dell_OrderMenu(int Id)//удаление menu из заказа
 {
     if (UserAct.Status == "guest")
     {
         List <OrderMenu> asd    = (List <OrderMenu>)Session["OrderMenuUser"];
         OrderMenu        od     = asd.Where(p => p.MenuId == Id).FirstOrDefault();
         Order            curord = (Order)Session["OrderUser"];
         curord.Price -= (decimal)Repository.Menus.Where(p => (p.MenuId == Id)).FirstOrDefault().Price *od.Count;
         asd.Remove(od);
         Session["OrderUser"]     = curord;
         Session["OrderMenuUser"] = asd;
     }
     else
     {
         OrderMenu delord = Repository.OrderMenus.Where(p => (p.OrderId == CheckOrders.OrderId && p.MenuId == Id)).FirstOrDefault();
         Order     curord = Repository.Orders.Where(p => p.OrderId == CheckOrders.OrderId).FirstOrDefault();
         curord.Price -= (decimal)Repository.Menus.Where(p => (p.MenuId == Id)).FirstOrDefault().Price *delord.Count;
         Repository.UpdateOrder(curord);
         Repository.RemoveOrderMenu(delord.OrderMenuId);
     }
     Response.Redirect("~/Page/BasketPage.aspx");
 }
示例#8
0
        public void Initialize()
        {
            userMenu           = new UserMenu();
            supplierMenu       = new SupplierMenu();
            suppToProdtMenu    = new SupplierToProductMenu();
            roleMenu           = new RoleMenu();
            productMenu        = new ProductMenu();
            orderToProductMenu = new OrderToProductMenu();
            orderMenu          = new OrderMenu();

            this.ActionsMenuValues = new List <string>()
            {
                "1. Create", "2. Delete", "3. Update", "4. Show", "5. Exit"
            };
            this.TablesMenuValues = new List <string>()
            {
                "1. User", "2. Supplier", "3. SuppliersToProducts", "4. Roles", "5. Product", "6. OrderToProduct", "7. Order", "2. Exit"
            };
            this.MainMenuValues = new List <string>()
            {
                "1. Tables", "2. Exit"
            };
        }
        public async Task <IActionResult> AddProduct(int id, int custID)
        {
            CreateOrderViewModel model = new CreateOrderViewModel();

            model.Orders = await _context.Order.SingleOrDefaultAsync(m => m.PaymentTypeID == null);

            if (model.Orders == null)
            {
                model.Orders = await CreateOrder(custID);
            }

            OrderMenu orderMenu = new OrderMenu();

            orderMenu.CustomerID = custID;
            orderMenu.Orders     = model.Orders;
            orderMenu.MenuItem   = await _context.MenuItem.SingleOrDefaultAsync(p => p.MenuItemID == id);

            _context.Add(orderMenu);

            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Customers", new { id = orderMenu.CustomerID }));
        }
        /// <summary>
        /// 给点单控件加载信息
        /// </summary>
        /// <param name="orderMenu">点单控件对象</param>
        private void OrderMenu_GetInfo(OrderMenu orderMenu)
        {
            //OrderDinner的集合
            List <OrderDinner> listOrderDinner = new List <OrderDinner>();

            GetSaleTemp01 getSale01 = new GetSaleTemp01();

            //选择的商品的总价格
            Info.totalPrice = 0;

            DataSet dataSet = getSale01.GetOrderInfo(Info.sale_id);


            //根据记录个数创建index_groupId数组
            orderMenu.Init_Index_Group_Array(dataSet);
            OrderDinner orderDinner;

            if (dataSet.Tables[0].Rows.Count > 0)
            {
                int xuhao = 1;
                for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                {
                    string a = getSale01.Price_type(i);
                    //单餐
                    if (getSale01.Comb_type(i).Equals("0"))
                    {
                        orderDinner          = new OrderDinner();
                        orderDinner.ProdName = getSale01.Pos_disp(i);
                        orderDinner.Number   = getSale01.ProdNumber(i);
                        orderDinner.Discount = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["ITEM_DISC"]);
                        orderDinner.Price    = getSale01.ProdPrice(i);
                        Info.totalPrice     += orderDinner.Price * orderDinner.Number + Convert.ToDecimal(dataSet.Tables[0].Rows[i]["ITEM_DISC"]);
                        orderDinner.Xu       = xuhao++;

                        orderDinner.Discount = decimal.Round(orderDinner.Discount, 1);
                        orderDinner.Total    = getSale01.Act_price(i) * orderDinner.Number;
                        //保留一位小数
                        orderDinner.Price = decimal.Round(orderDinner.Price, 1);
                        orderDinner.Total = decimal.Round(orderDinner.Total, 1);

                        listOrderDinner.Add(orderDinner);
                        if (orderDinner.Number == 1)
                        {
                            PoleDisplayer.Port = Info.cusShowPort;
                            PoleDisplayer.Clear();
                        }
                    }
                }

                this.operPara1.WriteIniInfo("totalPrice", Info.totalPrice.ToString());
                orderMenu.TotalPrice = (Info.totalPrice).ToString();
                //使价格最小精确到角
                orderMenu.TotalPrice = decimal.Round(Convert.ToDecimal(orderMenu.TotalPrice), 1) + "元";
                orderMenu.DgvOrderMenu.DataSource = null;
                orderMenu.DgvOrderMenu.DataSource = listOrderDinner;
            }
            else
            {
                orderMenu.TotalPrice = "0.0元";
                orderMenu.DgvOrderMenu.DataSource = null;
            }
            if (this.orderMenu.DgvOrderMenu.Rows.Count == 0)
            {
                Info.isDistinct  = false;
                Info.isAllowance = false;
            }
        }
 public void UpdateOrderMenu(OrderMenu orderMenu)
 {
     //
 }
示例#12
0
        private void AddToBasketButton_Clicked(object sender, EventArgs e)
        {
            #region Validating
            bool isValidate = false;
            if (QuantityInput.Text == null)
            {
                DisplayAlert("Error!", "Quantity is required!", "OK");
            }
            else if (!QuantityInput.Text.Any(char.IsDigit))
            {
                DisplayAlert("Error!", "Quantity input - Only digit are allowed!", "OK");
            }
            else if (QuantityInput.Text.Length > 2)
            {
                DisplayAlert("Error!", "Max length is 2!", "OK");
            }
            else if (Convert.ToInt32(QuantityInput.Text) <= 0 || Convert.ToInt32(QuantityInput.Text) > 10)
            {
                DisplayAlert("Error!", "Min quantity is 1 and max is 10", "OK");
            }
            else
            {
                isValidate = true;
            }
            #endregion

            if (isValidate)
            {
                if (Global.ActiveOrder == null)
                {
                    Global.ActiveOrder               = new Order();
                    Global.ActiveOrder.OrderDate     = DateTime.Now;
                    Global.ActiveOrder.OrderStatusID = 1;
                    Global.ActiveOrder.StudentID     = Global.loggedStudent.StudentID;
                    Global.ActiveOrder.EmployeeID    = 1;
                }
                bool exists = false;
                foreach (var item in Global.ActiveOrder.OrderMenu)
                {
                    if (item.MenuID == menu.MenuID)
                    {
                        item.Quantity += Convert.ToInt32(QuantityInput.Text);
                        Global.ActiveOrder.TotalPrice += menu.Price * Convert.ToInt32(QuantityInput.Text);
                        exists = true;
                        break;
                    }
                }

                if (!exists)
                {
                    OrderMenu item = new OrderMenu();
                    item.MenuID   = menu.MenuID;
                    item.Quantity = Convert.ToInt32(QuantityInput.Text);
                    item.Menu     = menu;

                    Global.ActiveOrder.TotalPrice += menu.Price * Convert.ToInt32(QuantityInput.Text);

                    Global.ActiveOrder.OrderMenu.Add(item);
                }


                DisplayAlert("Success!", "Menu added to your basket!", "Done");
                this.Navigation.PushAsync(new Orders.ActiveOrder());
            }
        }
        protected void ButtonCheck_Click(object sender, EventArgs e)
        {
            int _count = Convert.ToInt32(CountDish.Text);

            if (UserAct.Status == "guest")
            {
                Order     neworder = new Order();
                OrderMenu add      = new OrderMenu();
                if (Session["OrderUser"] == null)
                {
                    neworder.State       = "Check";
                    neworder.Price       = (decimal)Repository.Menus.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"])).FirstOrDefault().Price *_count;
                    Session["OrderUser"] = neworder;
                }
                else
                {
                    neworder             = (Order)Session["OrderUser"];
                    neworder.Price      += (decimal)Repository.Menus.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"])).FirstOrDefault().Price *_count;
                    Session["OrderUser"] = neworder;
                }

                List <OrderMenu> reqdish = new List <OrderMenu>();
                if (Session["OrderMenuUser"] != null)
                {
                    reqdish = (List <OrderMenu>)Session["OrderMenuUser"];
                }
                if (reqdish.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"])).Any())
                {
                    reqdish.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"])).FirstOrDefault().Count += _count;
                }
                else
                {
                    add.MenuId = Convert.ToInt32(Request.QueryString["MenuId"]);
                    add.Count  = _count;
                    reqdish.Add(add);
                }

                Session["OrderMenuUser"] = reqdish;
            }
            else
            {
                OrderMenu add = new OrderMenu();
                if (!Repository.Orders.Where(p => (p.UserId == UserAct.UserId && p.State == "Check")).Any())
                {
                    Order neword = new Order();
                    neword.State  = "Check";
                    neword.UserId = UserAct.UserId;
                    Repository.CreateOrder(neword);
                }
                Order saveord = Repository.Orders.Where(p => (p.UserId == UserAct.UserId && p.State == "Check")).FirstOrDefault();
                saveord.Price += (decimal)Repository.Menus.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"])).FirstOrDefault().Price *_count;
                Repository.UpdateOrder(saveord);
                if (Repository.OrderMenus.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"]) && p.OrderId == saveord.OrderId).Any())
                {
                    add        = Repository.OrderMenus.Where(p => p.MenuId == Convert.ToInt32(Request.QueryString["MenuId"]) && p.OrderId == saveord.OrderId).FirstOrDefault();
                    add.Count += _count;
                    Repository.UpdateOrderMenu(add);
                }
                else
                {
                    add.OrderId = saveord.OrderId;
                    add.MenuId  = Convert.ToInt32(Request.QueryString["MenuId"]);
                    add.Count   = _count;
                    Repository.CreateOrderMenu(add);
                }
            }
        }
示例#14
0
        static void Main(string[] args)
        {
            try
            {
                #region 1.0 普通的展示菜的方法
                {
                    Console.WriteLine($"{prefix}普通方法{prefix}");
                    NineFive.Model.Food.BeefFood beefFood = new NineFive.Model.Food.BeefFood();
                    beefFood.Show();

                    NineFive.Model.Food.FishFood fishFood = new NineFive.Model.Food.FishFood();
                    fishFood.Show();

                    NineFive.Model.Food.ChopFood chopFood = new NineFive.Model.Food.ChopFood();
                    chopFood.Show();
                }
                #endregion

                #region 2.0 简单工厂点菜
                {
                    //简单工厂:如果要加一类修改case 条件,添加类别
                    //长处: 简单,有效,类型创建剥离出来了
                    //短处:添加或者删除类,需要变更DLL,还需要该case或者if 条件
                    Console.WriteLine($"{prefix}简单工厂{prefix}");
                    BaseFood beefFood = SimpleFoodFactory.Create(FoodType.Beef);
                    beefFood.Show();
                    BaseFood fishFood = SimpleFoodFactory.Create(FoodType.Fish);
                    fishFood.Show();
                    BaseFood chopFood = SimpleFoodFactory.Create(FoodType.Chop);
                    chopFood.Show();
                }
                #endregion

                #region 3.0 工厂方法
                {
                    Console.WriteLine($"{prefix}工厂方法{prefix}");
                    //工厂方法:如果要加一类,只需添加工厂就可以
                    //长处: 创建单一产品的时候只需结合反射和配置文件可以完美的实现对象的创建
                    //短处:增加和修改产品依然需要变更DLL文件
                    IFoodFactory beefFactory = new BeefFactory();
                    beefFactory.Create().Show();

                    IFoodFactory fishFactory = new FishFactory();
                    fishFactory.Create().Show();

                    IFoodFactory chopFactory = new ChopFactory();
                    chopFactory.Create().Show();
                }
                #endregion

                #region 4.0 抽象工厂
                {
                    Console.WriteLine($"{prefix}抽象工厂{prefix}");
                    //抽象工厂:如果要加一类,只需添加工厂实现父类就可
                    //长处: 在创建多产品的时候非常适用
                    //短处:因为父类中有多产品,和父类耦合度过高
                    AbsFoodFactory sFactory = new SouthFoodFactory();
                    sFactory.CreateRice().Show();
                    sFactory.CreateSoup().Show();
                    sFactory.CreateBeef().Show();
                    sFactory.CreateFish().Show();
                    sFactory.CreateChop().Show();
                    AbsFoodFactory nFactory = new NorthFoodFactory();
                    nFactory.CreateRice().Show();
                    nFactory.CreateSoup().Show();
                    nFactory.CreateBeef().Show();
                    nFactory.CreateFish().Show();
                    nFactory.CreateChop().Show();
                }
                #endregion

                #region 5.0 点菜系统
                {
                    bool isExist = true;
                    OrderMenu.GetInstance();
                    while (isExist)
                    {
                        //1:显示菜单
                        OrderMenu.GetInstance().ShowMenu();
                        //2:等待用户输入要点的菜
                        string foods = Console.ReadLine();
                        if (foods.Trim().Length == 0)
                        {
                            //new OrderSystem.OrderMenu().ShowMenu();
                            continue;
                        }
                        //3:显示我点的菜名称
                        string[] strList = foods.Split(',');
                        if (strList.Contains("0"))
                        {
                            isExist = false;
                            continue;
                        }
                        List <int> foodIds = new List <int>();
                        foreach (var item in strList)
                        {
                            foodIds.Add(Convert.ToInt32(item));
                        }
                        OrderMenu.GetInstance().AllFoods.Where(u => foodIds.Contains(u.Id)).OrderBy(u => u.Id).ToList().ForEach(u =>
                        {
                            Console.WriteLine($"我点的菜是:{u.FoodName},描述:{u.Describe}");
                        });
                    }
                }
                #endregion

                #region 6.0 顾客点菜
                {
                    OrderMenu orderMenu = OrderMenu.GetInstance();
                    //1:创建客人
                    List <Customer> customers = new List <Customer>();
                    Customer        aCustomer = new Customer("甲");
                    Customer        bCustomer = new Customer("乙");
                    Customer        cCustomer = new Customer("丙");
                    customers.Add(aCustomer);
                    customers.Add(bCustomer);
                    customers.Add(cCustomer);

                    //2:客人开始点菜
                    Console.WriteLine($"{prefix}三个客人开始点菜了{prefix}");
                    //2.1 加载程序集,通过反射来加载菜的程序集
                    Assembly assembly = Assembly.Load("NineFive.Model");
                    //3:创建多线程
                    TaskFactory taskFactory = new TaskFactory();
                    List <Task> tasks       = new List <Task>();
                    tasks.Add(taskFactory.StartNew(() =>
                    {
                        //1:随机点3个菜
                        List <AbstractFood> foods = GetFoods();
                        foods.ForEach(u =>
                        {
                            //通过反射来创建菜的对象
                            AbstractFood newFood = u.Clone() as AbstractFood;
                            aCustomer.Foods.Add(newFood);
                        });
                        //2:开始品菜
                        aCustomer.Foods.ForEach(u =>
                        {
                            //装饰器模式实现
                            AbstractFood food = new BaseFoodDecorate(u);
                            food = new BeforeCookDecorate(food);
                            food = new AfterCookDecorate(food);
                            //做菜
                            food.Cook();
                            //品尝
                            food.Taste();
                            //点评
                            food.Comment();
                        });
                    }));
                    tasks.Add(taskFactory.StartNew(() =>
                    {
                        //1:随机点3个菜
                        List <AbstractFood> foods = GetFoods();
                        foods.ForEach(u =>
                        {
                            //通过反射来创建菜的对象
                            AbstractFood newFood = u.Clone() as AbstractFood;
                            bCustomer.Foods.Add(newFood);
                        });
                        //2:开始品菜
                        bCustomer.Foods.ForEach(u =>
                        {
                            //做菜
                            u.Cook();
                            //品尝
                            u.Taste();
                            //点评
                            u.Comment();
                        });
                    }));
                    tasks.Add(taskFactory.StartNew(() =>
                    {
                        //1:随机点3个菜
                        List <AbstractFood> foods = GetFoods();
                        foods.ForEach(u =>
                        {
                            //通过反射来创建菜的对象
                            AbstractFood newFood = u.Clone() as AbstractFood;
                            cCustomer.Foods.Add(newFood);
                        });
                        //2:开始品菜
                        cCustomer.Foods.ForEach(u =>
                        {
                            //做菜
                            u.Cook();
                            //品尝
                            u.Taste();
                            //点评
                            u.Comment();
                        });
                    }));
                    //4:三个客人都吃完了后,开始进行点评了
                    taskFactory.ContinueWhenAll(tasks.ToArray(), (ts) =>
                    {
                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.WriteLine("开始显示评选得分最高的菜");
                        customers.ForEach(u =>
                        {
                            u.Foods.OrderByDescending(iu => iu.Score).ToList().ForEach(h =>
                            {
                                Console.WriteLine($"{u.Name}:菜名:{h.FoodName},描述:{h.Describe},得分:{h.Score}");
                            });
                        });
                    });
                }
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine($"异常信息:{ex.Message}");
            }

            Console.ReadLine();
        }