public async Task <OperationResultResponse <Guid?> > ExecuteAsync(CreateWorkspaceRequest request)
        {
            ValidationResult validationResult = await _validator.ValidateAsync(request);

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

            OperationResultResponse <Guid?> response = new();

            response.Body = await _repository.CreateAsync(await _mapper.MapAsync(request));

            response.Status = OperationResultStatusType.FullSuccess;

            _httpContextAccessor.HttpContext.Response.StatusCode = (int)HttpStatusCode.Created;

            if (response.Body is null)
            {
                response = _responseCreator.CreateFailureResponse <Guid?>(HttpStatusCode.BadRequest);
            }

            return(response);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateWorkspace(string name, string tag)
        {
            if (User.FindFirst(Constants.SuperAdminClaim) is not null)
            {
                if (string.IsNullOrWhiteSpace(name))
                {
                    return(BadRequest("Name cannot be blank"));
                }

                bool nameCollision = _dbContext.Workspaces.Select(x => x.Name).Contains(name);

                if (!nameCollision)
                {
                    var workspace = new Workspace
                    {
                        Name = name,
                        Tag  = tag,
                    };

                    await _workspaceRepository.CreateAsync(workspace);

                    return(Ok());
                }
                string errorMessage = $"Workspace named {name} already exists";
                return(BadRequest(errorMessage));
            }
            return(Unauthorized());
        }
        public void ShouldAddWorkspaceCorrectly()
        {
            _dbWorkspaceToAdd.Id = Guid.NewGuid();

            _repository.CreateAsync(_dbWorkspaceToAdd);

            Assert.AreEqual(_dbWorkspaceToAdd, _provider.Workspaces.Find(_dbWorkspaceToAdd.Id));
        }
Ejemplo n.º 4
0
        private async Task <bool> CreateWorkspace(ICreateWorkspaceRequest request)
        {
            await _workspaceRepository.CreateAsync(_workspaceMapper.Map(request.Name, request.UsersIds, request.CreaterId));

            return(true);
        }