Ejemplo n.º 1
0
        public ActionResult New([Bind(Exclude = "ImageId,Image,Accepted")] ProductWithCategories newProduct, HttpPostedFileBase Image)
        {
            StateInitialisation();
            int imageId = UploadAndGetImageId(Image);

            newProduct.ImageId = imageId;
            newProduct.UserId  = User.Identity.GetUserId();
            try
            {
                if (ModelState.IsValid)
                {
                    newProduct.Categories = new List <Category>();
                    foreach (var selectedCategoryId in newProduct.SelectedCategoryIds)
                    {
                        Category category = db.Categories.Find(selectedCategoryId);
                        newProduct.Categories.Add(category);
                    }
                    Product dbProduct = mapper.Map <ProductWithCategories, Product>(newProduct);
                    db.Products.Add(dbProduct);
                    db.SaveChanges();
                    TempData["Message"] = "Your request will be submited by admin";
                    return(RedirectToAction("Index"));
                }
                TempData["Message"] = "Product adding has been failed";
                return(View(newProduct));
            }
            catch (Exception)
            {
                TempData["Message"] = "Product adding has been failed";
                return(View(newProduct));
            }
        }
Ejemplo n.º 2
0
        public ActionResult Edit(int id)
        {
            ProductWithCategories product = mapper.Map <Product, ProductWithCategories>(db.Products.Find(id));

            StateInitialisation(product);
            return(View(product));
        }
Ejemplo n.º 3
0
 public RedirectToActionResult EditProduct(int ProductId, ProductWithCategories newCat)
 {
     newCat.Association.ProductId = ProductId;
     dbContext.Add(newCat.Association);
     dbContext.SaveChanges();
     return(RedirectToAction("ProductWithCats", new{ ProductId = ProductId }));
 }
Ejemplo n.º 4
0
        public IEnumerable <ProductWithCategories> GetAllProduct()
        {
            var res = this.db.Products.Include("Categories");

            List <ProductWithCategories> prodWithCategories = new List <ProductWithCategories>();

            foreach (var product in res)
            {
                ProductWithCategories tempProduct = new ProductWithCategories();
                tempProduct.Title   = product.Title;
                tempProduct.Price   = product.Price;
                tempProduct.Content = product.Content;
                foreach (var categories in product.Categories)
                {
                    tempProduct.Categories.Add(categories.Name);

                    tempProduct.SelectCategories.Add(new SelectListItem
                    {
                        Text  = categories.Name,
                        Value = categories.Name
                    });
                }

                prodWithCategories.Add(tempProduct);
            }


            return(prodWithCategories);
        }
Ejemplo n.º 5
0
        public int[] GetSelectedCategories(ProductWithCategories product)
        {
            var categories = new List <int>();

            foreach (var category in product.Categories)
            {
                categories.Add(category.Id);
            }
            return(categories.ToArray());
        }
Ejemplo n.º 6
0
        public ActionResult New()
        {
            if (TempData.ContainsKey("Message"))
            {
                ViewBag.Message = TempData["Message"].ToString();
            }
            ProductWithCategories product = mapper.Map <Product, ProductWithCategories>(new Product());

            StateInitialisation();
            return(View(product));
        }
Ejemplo n.º 7
0
        public ProductWithCategories ListOfCatsForProductViewModel(int id)
        {
            ProductWithCategories PWC = new ProductWithCategories();

            PWC.CurrentProduct = dbContext.Products
                                 .Include(p => p.CategoryAssociation)
                                 .ThenInclude(pc => pc.Category)
                                 .FirstOrDefault(p => p.ProductId == id);

            PWC.ListOfCategories = dbContext.Categories
                                   .Include(c => c.ProductAssociation)
                                   .ThenInclude(cp => cp.Product)
                                   .Where(c => !PWC.CurrentProduct.CategoryAssociation.Select(cp => cp.Category).Contains(c))
                                   .ToList();
            return(PWC);
        }
Ejemplo n.º 8
0
        public ActionResult Edit(int id, ProductWithCategories requestProduct)
        {
            Product product = db.Products.Find(id);

            if (IsOwner(product.UserId) || User.IsInRole("Admin"))
            {
                StateInitialisation();
                try
                {
                    if (TryUpdateModel(product))
                    {
                        product = mapper.Map <ProductWithCategories, Product>(requestProduct);

                        product.Categories = new Collection <Category>();
                        foreach (var selectedCategoryId in requestProduct.SelectedCategoryIds)
                        {
                            Category category = db.Categories.Find(selectedCategoryId);
                            product.Categories.Add(category);
                        }

                        db.SaveChanges();
                        TempData["Message"] = "Product has been successfully changed";
                        return(RedirectToAction("Index"));
                    }

                    TempData["Message"] = "Product editing has been failed";
                    return(View(requestProduct));
                }
                catch (Exception)
                {
                    TempData["Message"] = "Product editing has been failed";
                    return(View(requestProduct));
                }
            }
            else
            {
                TempData["Message"] = "You don't have permission to change this product";
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 9
0
 public void StateInitialisation(ProductWithCategories product)
 {
     StateInitialisation();
     product.SelectedCategoryIds = GetSelectedCategories(product);
 }
Ejemplo n.º 10
0
        public ViewResult ProductWithCats(int ProductId)
        {
            ProductWithCategories viewModel = ListOfCatsForProductViewModel(ProductId);

            return(View("ProductWithCats", viewModel));
        }