Ejemplo n.º 1
0
        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);
                }
            }
        }