public async Task <IActionResult> DeleteAsync(int id) { var entity = await _service.ReadAsync(id); if (entity == null) { var message = string.Format("No {0} with ID = {1} found", _friendlyTableName, id); _logger.LogError(message); return(NotFound(message)); } var identity = _httpContextAccessor.HttpContext.User.Identity; var errorMessage = await _validation.ValidateCanDelete(entity.Id, identity.Name); if (errorMessage != Constants.NO_ERROR) { _logger.LogError(errorMessage); return(Problem(errorMessage)); } await _service.DeleteAsync(id); return(Ok(entity)); }