Example #1
0
        public ActionResult Create([Bind(Include = "Product, FoodSourceId, StoresIds")] CreateProductsViewModel viewModel)
        {
            var foodSource = db.FoodSources.Find(viewModel.FoodSourceId);

            viewModel.Product.FoodSource = foodSource;

            // So the validation won't fail as it was null before we set it.
            ModelState.Remove("Product.FoodSource");

            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", "Error", new { message = "Data wasn't valid, please try again" }));
            }

            // Add the selected Stores
            viewModel.Product.Stores = new List <Store>();
            foreach (var storeId in viewModel.StoresIds)
            {
                var storeToAdd = db.Stores.Find(storeId);
                viewModel.Product.Stores.Add(storeToAdd);
            }

            db.Products.Add(viewModel.Product);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #2
0
        public static void AddProducts(CreateProductsViewModel model)
        {
            var shop = Data.FirstOrDefault(o => o.Id == model.ShopId);

            model.Products.ForEach(o =>
            {
                var newProduct = new Product()
                {
                    Name  = o.Name,
                    Price = o.Price,
                    Id    = 1 + Data.Max(s =>
                    {
                        int maxId = s.Products.Max(x => x.Id);
                        return(maxId);
                    })
                };
                shop.Products.Add(newProduct);
            });
        }
Example #3
0
        public ActionResult Edit([Bind(Include = "Product, FoodSourceId, StoresIds")] CreateProductsViewModel viewModel)
        {
            var curUser = (User)HttpContext.Session["user"];

            if (curUser != null)
            {
                return(RedirectToAction("Index", "Error"));
            }

            if (!curUser.IsAdmin)
            {
                return(RedirectToAction("Index", "Error", new { message = "Missing Permissions" }));
            }

            // So the validation wont fail as it was null before we set it.
            ModelState.Remove("Product.FoodSource");

            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            Product product = db.Products.Where(r => r.Id == viewModel.Product.Id).Include(r => r.FoodSource).Include(r => r.Stores).FirstOrDefault();

            product.Name = viewModel.Product.Name;
            product.ProductWeightInKilo = viewModel.Product.ProductWeightInKilo;
            var foodSource = db.FoodSources.Find(viewModel.FoodSourceId);

            product.FoodSource = foodSource;

            product.Stores = new List <Store>();
            foreach (var storeToAdd in from storeId in viewModel.StoresIds
                     let storeToAdd = db.Stores.Find(storeId)
                                      select storeToAdd)
            {
                product.Stores.Add(storeToAdd);
            }

            db.Entry(product).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #4
0
        // GET: Products/Edit/5
        public ActionResult Edit(int?id)
        {
            var curUser = (User)HttpContext.Session["user"];

            if (curUser == null)
            {
                return(RedirectToAction("Index", "Error"));
            }

            if (!curUser.IsAdmin)
            {
                return(RedirectToAction("Index", "Error", new { message = "Missing permissions" }));
            }

            if (id == null)
            {
                return(RedirectToAction("Index", "Error"));
            }

            Product product = db.Products.Where(r => r.Id == id).Include(r => r.FoodSource).Include(r => r.Stores).FirstOrDefault();

            if (product == null)
            {
                return(HttpNotFound());
            }

            ViewBag.StoresList     = new MultiSelectList(db.Stores.Select(i => new { Id = i.Id, Store = i.City + ", " + i.StreetAddress }), "Id", "Store");
            ViewBag.FoodSourceList = new SelectList(db.FoodSources.Select(i => new { Id = i.Id, Name = i.Name }), "Id", "Name");
            CreateProductsViewModel viewModel = new CreateProductsViewModel
            {
                Product = product
            };

            viewModel.StoresIds.AddRange(from store in product.Stores
                                         select store.Id);
            viewModel.FoodSourceId = product.FoodSource.Id;

            return(View(viewModel));
        }
Example #5
0
 public void Post(CreateProductsViewModel model)
 {
     DataRepository.AddProducts(model);
 }