private async Task <Project> CreateProject(ApplicationUser user, VmProject project) { if (project == null) { throw new HttpResponseException(BadRequest, $"Parameter '{nameof(project)}' cannot be null"); } if (string.IsNullOrWhiteSpace(project.Name)) { throw new HttpResponseException(BadRequest, "Cannot create project. The name cannot be empty"); } var model = _vmConverter.ToModel(project); model.Id = 0; model.CreationDate = DateTime.Now.ToUniversalTime(); model.OwnerId = user.Id; await _dataContext.Projects.AddAsync(model); _entityStateQueue.EnqueueId(user.Id, model.Id, nameof(Project), EntityOperation.Create); return(model); }
public async Task CreateByFormWithTeamsTest() { //Arrange var teamIds = new[] { 1, 2, 3 }; var vmProject = new VmProject { Id = 0, Name = "new project", OwnerId = _testData.Users[1].Id, IsRemoved = false }; var currentUser = _testData.Users.First(); //Act var result = await _service.CreateByForm(currentUser, new VmProjectForm(vmProject, teamIds)); var projectTeams = await _dataContext.ProjectTeams .Where(pt => pt.ProjectId == result.Id) .ToArrayAsync(); //Assert Assert.AreEqual(teamIds.Length, projectTeams.Length); for (int i = 0; i < teamIds.Length; i++) { Assert.AreEqual(teamIds[i], projectTeams[i].TeamId); } }
/// <inheritdoc /> public async Task <VmProject> Create(ApplicationUser user, VmProject project) { var model = await CreateProject(user, project); await _dataContext.SaveChangesAsync(); return(_vmConverter.ToViewModel(model)); }
public async Task <IActionResult> Update( [FromBody] VmProject project) { var currentUser = await _currentUserService.GetCurrentUser(User); await _projectsService.Update(currentUser, project); return(NoContent()); }
public async Task <ActionResult <VmProject> > Create( [FromBody] VmProject project) { var currentUser = await _currentUserService.GetCurrentUser(User); var result = await _projectsService.Create(currentUser, project); return(Ok(result)); }
/// <inheritdoc /> public async Task Update(ApplicationUser user, VmProject project) { if (project == null || project.Id == 0) { throw new HttpResponseException(BadRequest, "Cannot update the project. Project cannot be empty"); } await UpdateProjects(user, new[] { project }); }
public void CreateForInvalidNameTest(string name) { //Arrange var vmProject = new VmProject { Id = 0, Name = name, GroupId = null, OwnerId = _testData.Users.First().Id, IsRemoved = false, }; //Assert Assert.ThrowsAsync <HttpResponseException>(async() => await _service.CreateByForm(_testData.Users.First(), new VmProjectForm(vmProject, null))); }
public async Task CreationTimeTest() { //Arrange var vmProject = new VmProject { Id = 0, Name = "NewProject", GroupId = null, OwnerId = _testData.Users.First().Id, IsRemoved = false, }; //Act var result = await _service.Create(_currentUser, vmProject); var delta = Math.Abs((DateTime.Now.ToUniversalTime() - result.CreationDate).TotalSeconds); //Assert Assert.AreEqual(0, delta, 10); }
public async Task CreateByFormTest(int id) { //Arrange var groupId = _testData.Groups.First().Id; var vmProject = new VmProject { Id = id, Name = "new project", GroupId = groupId, OwnerId = _testData.Users[1].Id, IsRemoved = false, }; var currentUser = _testData.Users.First(); //Act var result = await _service.CreateByForm(currentUser, new VmProjectForm(vmProject, null)); //Assert Assert.IsNotNull(result); Assert.AreEqual(_testData.Projects.Count + 1, result.Id); Assert.AreEqual(currentUser.Id, result.OwnerId); Assert.AreEqual(groupId, result.GroupId); }