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)); }
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)); }