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