Esempio n. 1
0
        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));
        }