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); } } }