public async Task <OperationResultResponse <bool> > ExecuteAsync(Guid workspaceId, JsonPatchDocument <EditWorkspaceRequest> request) { DbWorkspace dbWorkspace = await _repository.GetAsync(workspaceId); Guid editorId = _httpContextAccessor.HttpContext.GetUserId(); if (dbWorkspace.CreatedBy != editorId && (await _userRepository.GetAdminsAsync(workspaceId)).FirstOrDefault(wa => wa.UserId == editorId) == null && !await _accessValidator.IsAdminAsync()) { return(_responseCreator.CreateFailureResponse <bool>(HttpStatusCode.Forbidden)); } if (!_validator.ValidateCustom(request, out List <string> errors)) { return(_responseCreator.CreateFailureResponse <bool>(HttpStatusCode.BadRequest, errors)); } OperationResultResponse <bool> response = new(); response.Body = await _repository.EditAsync(dbWorkspace, await _mapper.MapAsync(request)); response.Status = OperationResultStatusType.FullSuccess; if (!response.Body) { response = _responseCreator.CreateFailureResponse <bool>(HttpStatusCode.BadRequest); } return(response); }