Пример #1
0
        public IActionResult Remove(int Id)
        {
            var viewModel          = new CategoryRemoveViewModel();
            var dbCategory         = _dbContext.Categories.FirstOrDefault(r => r.Id == Id);
            var productsInCategory = _dbContext.Products.Include(r => r.Category)
                                     .Where(r => r.Category.Id == Id)
                                     .Select(dbProd => new ProductViewModel
            {
                Id          = dbProd.Id,
                Title       = dbProd.Title,
                Description = dbProd.Description,
                Price       = dbProd.Price,
                Category    = dbProd.Category.Title
            }).ToList();

            viewModel.Id    = dbCategory.Id;
            viewModel.Title = dbCategory.Title;
            viewModel.ProductsInCategory = productsInCategory;
            if (viewModel.ProductsInCategory.Count == 0)
            {
                viewModel.ContainsProducts = false;
            }
            else
            {
                viewModel.ContainsProducts = true;
            }
            return(View(viewModel));
        }
Пример #2
0
        public IActionResult Remove(CategoryRemoveViewModel viewModel, int Id, bool hasProducts, string ProductsInCategory)
        {
            var dbCategory = _dbContext.Categories.FirstOrDefault(r => r.Id == Id);
            var errors     = ModelState
                             .Where(x => x.Value.Errors.Count > 0)
                             .Select(x => new { x.Key, x.Value.Errors })
                             .ToArray();

            if (ModelState.IsValid)
            {
                if (hasProducts == true)
                {
                    var ids = ProductsInCategory.Split(':');

                    foreach (var id in ids)
                    {
                        if (String.IsNullOrEmpty(id))
                        {
                            break;
                        }
                        int prodid    = Convert.ToInt32(id);
                        var dbProduct = _dbContext.Products.FirstOrDefault(r => r.Id == prodid);
                        _dbContext.Products.Remove(dbProduct);
                    }
                }
                _dbContext.Categories.Remove(dbCategory);
                _dbContext.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }