public async Task <OperationResultResponse <bool> > ExecuteAsync(Guid fileId, JsonPatchDocument <EditFileRequest> request)
        {
            OperationResultResponse <bool> response = new();

            if (!await _accessValidator.HasRightsAsync(Rights.AddEditRemoveProjects))
            {
                return(_responseCreator.CreateFailureResponse <bool>(HttpStatusCode.Forbidden));
            }

            ValidationResult result = _requestValidator.Validate(request);

            if (!result.IsValid)
            {
                return(_responseCreator.CreateFailureResponse <bool>(HttpStatusCode.BadRequest,
                                                                     result.Errors.Select(vf => vf.ErrorMessage).ToList()));
            }

            response.Body = await _fileRepository.EditAsync(fileId, _mapper.Map(request));

            response.Status = OperationResultStatusType.FullSuccess;
            if (!response.Body)
            {
                response = _responseCreator.CreateFailureResponse <bool>(HttpStatusCode.BadRequest);
            }

            return(response);
        }
示例#2
0
        public async Task <OperationResultResponse <Guid?> > ExecuteAsync(CreateNewsRequest request)
        {
            if (!await _accessValidator.HasRightsAsync(Rights.AddEditRemoveNews))
            {
                _httpContextAccessor.HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;

                return(new OperationResultResponse <Guid?>
                {
                    Status = OperationResultStatusType.Failed,
                    Errors = new() { "Not enough rights." }
                });