public async Task <IActionResult> Delete([FromForm] int productId) { var role = await _context.UserRole.FirstOrDefaultAsync(role => role.Id == this.GetUserRole()); if (role.CanDeleteProducts == false) { return(Forbid()); } List <int> ids = _orderRepository.Orders.Where(o => o.Lines.Any(l => l.Product.ID == productId)).Select(o => o.OrderID).ToList(); foreach (var id in ids) { var deletedOrder = _orderRepository.DeleteOrder(id); } var stockId = _stockRepository.StockItems.FirstOrDefault(s => s.Product.ID == productId).ID; var deletedStock = _stockRepository.DeleteStockItem(stockId); var extendedId = _productExtendedRepository.ProductsExtended.FirstOrDefault(p => p.Product.ID == productId).ID; var deletedExtended = _productExtendedRepository.DeleteProductExtended(extendedId); var deletedProduct = _productRepository.DeleteProduct(productId); return(Ok()); }
public IActionResult Delete(int productId) { Stock deletedStock = _stockRepository.DeleteStockItem(productId); Product deletedProduct = _repository.DeleteProduct(productId); if (deletedProduct != null && deletedStock != null) { TempData["message"] = $"{deletedProduct.Name} was deleted"; } return(RedirectToAction("Index")); }