public async Task <IActionResult> DeleteProduct([FromRoute] int id) { _logger.LogInformation($"DeleteProduct({id})"); if (!ModelState.IsValid) { _logger.LogWarning($"DeleteProduct({id}) invalid ModelState: {ModelState.ErrorsToString()}"); return(BadRequest(ModelState)); } var product = await _productService.GetByIdAsync(id); if (product == null) { _logger.LogWarning($"DeleteProduct({id}) not found"); return(NotFound()); } await _productService.DeleteAsync(id); // Notify about the sale // No waiting for completion _notifyService?.ProductSold(product); return(Ok(product)); }