Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        /// <inheritdoc />
        public async Task <VmProject> Create(ApplicationUser user, VmProject project)
        {
            var model = await CreateProject(user, project);

            await _dataContext.SaveChangesAsync();

            return(_vmConverter.ToViewModel(model));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Update(
            [FromBody] VmProject project)
        {
            var currentUser = await _currentUserService.GetCurrentUser(User);

            await _projectsService.Update(currentUser, project);

            return(NoContent());
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        /// <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 });
        }
Ejemplo n.º 7
0
        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)));
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }