public ActionResult Save(TypeStatus typeStatus, string id) { if (Session["IsAdmin"] != null || typeStatus.Equals(TypeStatus.Done)) { if (string.IsNullOrWhiteSpace(typeStatus.ToString())) { throw new MissingFieldException("fill all the fields"); } bool result; MongoDB db = new MongoDB(); var Order = db.GetOrder(id); Orders toyModel = new Orders(); toyModel.ToyList = Order.ToyKids; Toy toy = new Toy(); var query = toyModel.ToyList.GroupBy(x => x) .Select(y => new { Element = y.Key, Counter = y.Count() }) .ToList(); foreach (var toyRequest in query) { toy = db.GetToy(toyRequest.Element.ToyName); if (toy.Amount <= toyRequest.Counter) { ModelState.AddModelError("", "Order no Avaible"); return(RedirectToAction("Details", id)); } } if (string.IsNullOrWhiteSpace(id)) { Order requestkid = new Order(); } result = db.UpdateOrder(new Order { ID = id, Status = typeStatus }); foreach (var toyRequest in toyModel.ToyList) { toy = db.GetToy(toyRequest.ToyName); result = db.UpdateToy(toy); if (toy.Amount == 0) { db.RemoveToy(toy.ID); } } return(RedirectToAction("Index", new { result = result })); } return(RedirectToAction("../Users/Login")); }