public async Task <IActionResult> Delete(int?id) { var MerchantId = await _userService.GetCurrentMerchantId(User); var store = await _context.Store .Include(s => s.Merchant) .ThenInclude(s => s.User) .FirstOrDefaultAsync(s => s.Id == id && s.MerchantId == MerchantId); if (store == null) { return(NotFound()); } var model = new DeleteStoreViewModel { Id = store.Id, Name = store.Name, MerchantName = store.Merchant.Name, Address = store.Address, Status = store.Status, TerminalCount = await _context.Terminal.CountAsync(t => t.StoreId == store.Id), PaymentCount = await _context.Payment.CountAsync(t => t.StoreId == store.Id) }; return(View(model)); }
public IActionResult DeleteStore(Guid?id) { if (id == null) { return(RedirectToAction(IndexAction, DefaultController)); } var storeToDel = _storeRepository.GetOne(id.Value); if (storeToDel == null) { return(View("StoreNotFound", id.Value)); } var delStoreViewModel = new DeleteStoreViewModel { Store = storeToDel }; return(View(delStoreViewModel)); }
public IActionResult DeleteStore(DeleteStoreViewModel deleteStoreViewModel) { var storeToDel = _storeRepository.GetOne(deleteStoreViewModel.StoreId); if (storeToDel == null) { return(View("StoreNotFound", deleteStoreViewModel.StoreId)); } if (storeToDel.Categories.Count != 0) { var productsToRemove = new List <Product>(); var categoriesToRemoveFromStore = new List <Category>(); foreach (var category in storeToDel.Categories) { productsToRemove.AddRange(category.Products .Where(pr => pr.CategoryId.Equals(category.Id) && !pr.ProductStatus.Equals(ProductStatus.Purchased)) .ToList()); categoriesToRemoveFromStore.Add(category); } foreach (var product in productsToRemove) { _productRepository.DeleteOne(product.Id); } foreach (var category in categoriesToRemoveFromStore) { _categoryRepository.DeleteCategoryFromStore(category, storeToDel.Id); } } _storeRepository.DeleteOne(storeToDel.Id); return(RedirectToAction(IndexAction, DefaultController)); }