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); }
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)); }
private async Task <bool> CreateWorkspace(ICreateWorkspaceRequest request) { await _workspaceRepository.CreateAsync(_workspaceMapper.Map(request.Name, request.UsersIds, request.CreaterId)); return(true); }