예제 #1
0
        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());
        }
예제 #2
0
        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"));
        }