public async Task <IActionResult> AddTeamMember([BindRequired] long?projectId, [BindRequired] long?teamMemberId)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Details), new { projectId = projectId.Value }));
            }

            var addTeamMemberRequest = new AddProjectTeamMemberRequest
            {
                ProjectId    = projectId.Value,
                TeamMemberId = teamMemberId.Value
            };
            await _projectApplicationService.Handle(addTeamMemberRequest);

            return(RedirectToAction(nameof(Details), new { projectId = projectId.Value }));
        }
Ejemplo n.º 2
0
        public async Task <UserResponse> Handle(AddProjectTeamMemberRequest request)
        {
            var project = await _projectRepository.ReadById(request.ProjectId);

            if (project == default)
            {
                throw new ArgumentNullException("Project not found");
            }

            var teamMember = await _userRepository.ReadById(request.TeamMemberId);

            if (project == default)
            {
                throw new ArgumentNullException("User with id not found");
            }

            project.AddTeamMember(teamMember);

            await _projectRepository.PersistChanges();

            return(teamMember.Adapt <UserResponse>());
        }