public async Task CreateProjectUser_CallWithMockedIProjectUser_ReturnOkObjectResult()
        {
            // Arrange
            var mock        = new Mock <IProjectUser>();
            var id          = Guid.Empty;
            var userId      = Guid.NewGuid();
            var projectId   = Guid.NewGuid();
            var projectUser = new ProjectUserDto()
            {
                Id        = id,
                ProjectId = projectId,
                UserId    = userId,
                Username  = "******",
                IsOwner   = true
            };

            mock.Setup(pu => pu.CreateProjectUserAsync(projectUser)).ReturnsAsync(projectUser);
            var controller = new ProjectUsersController(mock.Object);

            // Act
            var result = await controller.CreateProjectUser(projectUser);

            var response = (OkObjectResult)result;

            // Assert
            Assert.IsType <OkObjectResult>(result);
            Assert.IsType <ResponseDto <ProjectUserDto> >(response.Value);
        }
        public async Task CreateProjectUser_CallWithMockedIProjectUser_CatchesAndThrowsProjectUserException()
        {
            // Arrange
            var mock        = new Mock <IProjectUser>();
            var id          = Guid.Empty;
            var userId      = Guid.NewGuid();
            var projectId   = Guid.NewGuid();
            var projectUser = new ProjectUserDto()
            {
                Id        = id,
                ProjectId = projectId,
                UserId    = userId,
                Username  = "******",
                IsOwner   = true
            };

            var message = "Exception Message";
            var ex      = new ProjectUserException(message);

            mock.Setup(pu => pu.CreateProjectUserAsync(projectUser)).ThrowsAsync(ex);
            var controller = new ProjectUsersController(mock.Object);

            // Act
            var result = await controller.CreateProjectUser(projectUser);

            var response     = (BadRequestObjectResult)result;
            var objectResult = (ResponseDto <ErrorDto>)response.Value;

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
            Assert.IsType <ResponseDto <ErrorDto> >(response.Value);
            Assert.Equal(message, objectResult.Data.Message);
        }
        private ProjectUserDto GetProjectOwner(ProjectDto projects)
        {
            List <ProjectUserDto> projectUsers = projects.ProjectUsers;
            ProjectUserDto        projectUser  = projectUsers.Find(p => p.IsOwner);

            return(projectUser);
        }
示例#4
0
        public async Task <ProjectUserDto> CreateProjectUserAsync(ProjectUserDto projectUser)
        {
            UserEntity userEntity = await _userStorage.FindAsync(u => u.Id == projectUser.UserId);

            if (userEntity == null)
            {
                throw new ProjectUserException(ExceptionMessage.InvalidUserId);
            }

            ProjectEntity project = await _projectStorage.FindAsync(p => p.Id == projectUser.ProjectId);

            ProjectUserEntity projectUserEntity = _mapper.Map <ProjectUserEntity>(projectUser);

            // if there are currently no members on the project,
            // default first member to project owner
            projectUserEntity.IsOwner = project.ProjectUsers.Count == 0;

            // Remove user if project collaborator exist
            await _projectCollaboratorSuggestionStorage.DeleteAllAsync(pcs => pcs.ProjectId == projectUser.ProjectId && pcs.UserId == projectUser.UserId);

            var createdProjectUser = await _projectUserStorage.CreateAsync(projectUserEntity);

            var createdProjectUserDto = _mapper.Map <ProjectUserDto>(createdProjectUser);

            createdProjectUserDto.Username = userEntity.Username;
            var projectDto = _mapper.Map <ProjectDto>(project);

            var notificationDto = new NotificationDto(createdProjectUserDto.UserId)
            {
                NotificationObject = projectDto
            };
            await _notifier.SendYouJoinedProjectNotificationAsync(notificationDto);

            return(createdProjectUserDto);
        }
示例#5
0
 private void button1_Click(object sender, EventArgs e)
 {
     try
     {
         if (!ListDataGridViewSource.Any(s => s.UserName == comboBox1.Text))
         {
             var pu = new ProjectUserDto
             {
                 ProjectId = ManagerProject.ProjectId,
                 Type      = comboBox2.Text,
                 UserName  = comboBox1.Text,
                 UserId    = ListCombobox1Source.Where(s => s.UserName == comboBox1.Text).Select(s => s.Id).FirstOrDefault()
             };
             ListDataGridViewSource.Add(pu);
             foreach (var a in ListCombobox1Source.ToList())
             {
                 if (a.Id == pu.UserId)
                 {
                     ListCombobox1Source.Remove(a);
                     break;
                 }
             }
             LoadData();
             loadcombobox();
         }
         else
         {
             MessageBox.Show($"Nhân viên {comboBox1.Text} đã có trong dự án");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show($"{ex}");
     }
 }
示例#6
0
 private void button2_Click(object sender, EventArgs e)
 {
     //var ab = TimeSheetModel.User.Where(s => s.Name == comboBox1.Text).Select(s => new { UserId=s.Id,Name= s.Name }).ToList();
     if (!String.IsNullOrEmpty(ListCombobox1Source.Select(s => s.Name).FirstOrDefault()))
     {
         var pu = new ProjectUserDto
         {
             ProjectId = AddNewProject.ProjectID,
             Type      = comboBox2.Text,
             UserName  = comboBox1.Text,
             UserId    = ListCombobox1Source.Where(s => s.UserName == comboBox1.Text).Select(s => s.Id).FirstOrDefault()
         };
         ListDataGridViewSource.Add(pu);
         foreach (var a in ListCombobox1Source.ToList())
         {
             if (a.Id == pu.UserId)
             {
                 ListCombobox1Source.Remove(a);
                 break;
             }
         }
     }
     else
     {
         MessageBox.Show("Da het thanh vien de tham gia du an");
     }
     LoadData();
 }
        private ProjectUserDto ConvertToProjectUserDto(ProjectUser projectUser)
        {
            var projectUserDto = new ProjectUserDto
            {
                ProjectId = projectUser.ProjectId,
                UserId    = projectUser.UserId
            };

            return(projectUserDto);
        }
        public async Task <bool> RemoveUserToProjectAsync(int id, int userId)
        {
            GetClient();
            ProjectUserDto      userProject = null;
            HttpResponseMessage response    = await client.DeleteAsync($"api/Projects/{id}/users?userId={userId}");

            if (response.IsSuccessStatusCode)
            {
                userProject = await response.Content.ReadAsAsync <ProjectUserDto>();

                return(true);
            }
            return(false);
        }
        public async Task <IActionResult> CreateProjectUser([FromBody] ProjectUserDto project)
        {
            ResponseDto <ProjectUserDto> okResponse    = new ResponseDto <ProjectUserDto>(true);
            ResponseDto <ErrorDto>       errorResponse = new ResponseDto <ErrorDto>(false);

            try
            {
                okResponse.Data = await _projectUser.CreateProjectUserAsync(project);
            }
            catch (ProjectUserException e)
            {
                errorResponse.Data = new ErrorDto(e.Message);
                return(BadRequest(errorResponse));
            }

            return(Ok(okResponse));
        }