public async Task <IActionResult> DeleteOwner(Guid id) { try { var owner = await _ownerService.GetOwnerById(id); if (owner.IsEmptyObject()) { _logger.LogError($"Owner with id: {id}, hasn't been found in db."); return(NotFound(new ApiResponse(404))); } var accounts = await _accountService.AccountsByOwner(id); if (accounts.Any()) { _logger.LogError($"Cannot delete owner with id: {id}. It has related accounts. Delete those accounts first"); return(BadRequest(new ApiResponse(400, "Cannot delete owner. It has related accounts. Delete those accounts first"))); } await _ownerService.DeleteOwner(owner); return(NoContent()); } catch (Exception ex) { _logger.LogError($"Something went wrong inside DeleteOwner action: {ex.Message}"); return(new ObjectResult(new ApiResponse(500))); } }