public IActionResult DeleteCategoryFromStore(DeleteCategoryFromStoreViewModel deleteCategoryFromStoreViewModel) { var store = _storeRepository.GetOne(deleteCategoryFromStoreViewModel.StoreId); if (store == null) { return(View("StoreNotFound", deleteCategoryFromStoreViewModel.StoreId)); //StoreNotFound } var categoryToDelFromStore = _categoryRepository.GetOne(deleteCategoryFromStoreViewModel.CategoryId); if (categoryToDelFromStore == null) { return(View("CategoryNotFound", deleteCategoryFromStoreViewModel.CategoryId)); //CategoryNotFound } var productsInCatToDel = store.Categories.First(e => e.Id.Equals(categoryToDelFromStore.Id)).Products; if (productsInCatToDel.Count != 0) { var productsToDel = productsInCatToDel.ToList(); productsToDel.AddRange(productsToDel); foreach (var product in productsToDel) { //you should not delete category _productRepository.DeleteOne(product.Id); } } var catToDel = new Category(categoryToDelFromStore.Id, categoryToDelFromStore.Name); //? _categoryRepository.DeleteCategoryFromStore(catToDel, store.Id); return(RedirectToAction(IndexAction, DefaultController)); }
public IActionResult DeleteCategoryFromStore(Guid?storeId, Guid?categoryId) { if (storeId == null || categoryId == null) { return(RedirectToAction(IndexAction, DefaultController)); } var store = _storeRepository.GetOne(storeId.Value); if (store == null) { return(View("StoreNotFound", storeId.Value)); } var categoryToDel = _categoryRepository.GetOne(categoryId.Value); if (categoryToDel == null) { return(View("CategoryNotFound", categoryId.Value)); //CategoryNotFound } var delCategoryViewModel = new DeleteCategoryFromStoreViewModel { StoreId = store.Id, Category = categoryToDel }; return(View(delCategoryViewModel)); }