Esempio n. 1
0
        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"));
        }