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