Exemple #1
0
        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)));
            }
        }