protected void ButtonCheck_Click(object sender, EventArgs e) { int _count = Convert.ToInt32(CountDish.Text); if (UserAct.Status == "guest") { Order neworder = new Order(); OrderDish add = new OrderDish(); if (Session["OrderUser"] == null) { neworder.State = "Check"; neworder.Price = (decimal)Repository.Dishs.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"])).FirstOrDefault().Price *_count; Session["OrderUser"] = neworder; } else { neworder = (Order)Session["OrderUser"]; neworder.Price += (decimal)Repository.Dishs.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"])).FirstOrDefault().Price *_count; Session["OrderUser"] = neworder; } List <OrderDish> reqdish = new List <OrderDish>(); if (Session["OrderDishUser"] != null) { reqdish = (List <OrderDish>)Session["OrderDishUser"]; } if (reqdish.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"])).Any()) { reqdish.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"])).FirstOrDefault().Count += _count; } else { add.DishId = Convert.ToInt32(Request.QueryString["DishId"]); add.Count = _count; reqdish.Add(add); } Session["OrderDishUser"] = reqdish; } else { OrderDish add = new OrderDish(); 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.Dishs.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"])).FirstOrDefault().Price *_count; Repository.UpdateOrder(saveord); if (Repository.OrderDishs.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"]) && p.OrderId == saveord.OrderId).Any()) { add = Repository.OrderDishs.Where(p => p.DishId == Convert.ToInt32(Request.QueryString["DishId"]) && p.OrderId == saveord.OrderId).FirstOrDefault(); add.Count += _count; Repository.UpdateOrderDish(add); } else { add.OrderId = saveord.OrderId; add.Count = _count; add.DishId = Convert.ToInt32(Request.QueryString["DishId"]); Repository.CreateOrderDish(add); } } }