public async Task <IActionResult> Create(SubCategoriesCreateViewModel viewModel) { string statusMessage = null; if (ModelState.IsValid) { var subCategoriesInCategory = _db.SubCategories.Include(s => s.Category).Where(sc => sc.Name == viewModel.SubCategory.Name && sc.CategoryId == viewModel.SubCategory.CategoryId); if (subCategoriesInCategory.Any()) { //Error statusMessage = $"Error : Sub Category {viewModel.SubCategory.Name} exists under {subCategoriesInCategory.First().Category.Name} Category. Please verify."; } else { _db.SubCategories.Add(viewModel.SubCategory); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } SubCategoriesCreateViewModel vm = new SubCategoriesCreateViewModel() { Categories = await _db.Categories.ToListAsync(), SubCategory = viewModel.SubCategory, SubCategoryNameList = await _db.SubCategories.OrderBy(s => s.Name).Select(sb => sb.Name).Distinct().ToListAsync(), StatusMessage = statusMessage }; return(View(vm)); }
//GET public async Task <IActionResult> Create() { SubCategoriesCreateViewModel viewModel = new SubCategoriesCreateViewModel() { Categories = await _db.Categories.ToListAsync(), SubCategory = new Models.SubCategory(), SubCategoryNameList = await _db.SubCategories.OrderBy(s => s.Name).Select(sb => sb.Name).Distinct().ToListAsync() }; return(View(viewModel)); }
//GET public async Task <IActionResult> Edit(int?id) { if (id.HasValue) { var subCategory = await _db.SubCategories.SingleOrDefaultAsync(s => s.Id == id); if (subCategory != null) { SubCategoriesCreateViewModel viewModel = new SubCategoriesCreateViewModel() { Categories = await _db.Categories.ToListAsync(), SubCategory = subCategory, SubCategoryNameList = await _db.SubCategories.OrderBy(s => s.Name).Select(sb => sb.Name).Distinct().ToListAsync() }; return(View(viewModel)); } } return(NotFound()); }