Esempio n. 1
0
        public override string Execute()
        {
            Console.WriteLine($"Trying to update the role of {User} in project {Project}...");

            string message;

            var project = _projectService.GetProjectByName(Project).Result;
            var user    = _accountService.GetUserByUserName(User).Result;
            var roleId  = MemberRole.GetMemberRoleId(Role);

            if (project != null && user != null && roleId > 0)
            {
                var projectMember = _projectMemberService.GetProjectMemberByUserId(project.Id, int.Parse(user.Id)).Result;

                if (projectMember != null)
                {
                    _projectMemberService.UpdateProjectMember(project.Id, projectMember.Id, new UpdateProjectMemberDto
                    {
                        Id     = projectMember.Id,
                        UserId = int.Parse(user.Id),
                        ProjectMemberRoleId = roleId
                    }).Wait();

                    message = $"User {User} has been assigned as {Role} in project {Project}";
                    Logger.LogInformation(message);
                    return(message);
                }
            }

            message = $"Failed to update user {User}. Make sure the project name and user email are correct.";

            return(message);
        }
Esempio n. 2
0
        public override string Execute()
        {
            Console.WriteLine($"Trying to get members of project {Project}...");

            string message;

            var project = _projectService.GetProjectByName(Project).Result;

            if (project != null)
            {
                var roleId         = MemberRole.GetMemberRoleId(Role ?? string.Empty);
                var projectMembers = _projectMemberService.GetProjectMembers(project.Id, roleId).Result;

                message = projectMembers.Select(m => new MemberListViewModel
                {
                    UserId   = m.UserId,
                    Username = m.Username,
                    Role     = m.ProjectMemberRoleName
                }).ToListCliString($"Found {projectMembers.Count} project member(s):");
            }
            else
            {
                message = $"Project {Project} was not found";
            }

            return(message);
        }
Esempio n. 3
0
        public override string Execute()
        {
            Console.WriteLine($"Trying to add {User} as member of project {Project}...");

            string message;

            var project = _projectService.GetProjectByName(Project).Result;
            var user    = _accountService.GetUserByUserName(User).Result;
            var roleId  = MemberRole.GetMemberRoleId(Role);

            if (project != null)
            {
                var projectMember = _projectMemberService.CreateProjectMember(project.Id, new NewProjectMemberDto
                {
                    UserId              = user != null ? int.Parse(user.Id) : 0,
                    Email               = User,
                    ProjectId           = project.Id,
                    ProjectMemberRoleId = roleId
                }).Result;

                var addedMember = new MemberViewModel
                {
                    UserId   = projectMember.UserId,
                    Username = projectMember.Username,
                    Role     = projectMember.ProjectMemberRoleName
                };

                message = addedMember.ToCliString($"User has been added to project {Project}:");
                Logger.LogInformation(message);
            }
            else
            {
                message = $"Project {Project} was not found";
            }

            return(message);
        }
Esempio n. 4
0
        public override string Execute()
        {
            Console.WriteLine($"Trying to add {User} as member of project {Project}...");

            string message;

            var project = _projectService.GetProjectByName(Project).Result;
            var user    = _accountService.GetUserByUserName(User).Result;
            var roleId  = MemberRole.GetMemberRoleId(Role);

            if (project != null)
            {
                var newMember = new NewProjectMemberDto
                {
                    UserId                                                     = user != null?int.Parse(user.Id) : 0,
                                                           Email               = User,
                                                           ProjectId           = project.Id,
                                                           ProjectMemberRoleId = roleId
                };

                if (user == null)
                {
                    var externalAccountTypes = _accountService.GetExternalAccountTypes().Result;

                    Console.WriteLine("You are creating a new user. Please fill in the user info.");

                    newMember.FirstName = Console.GetString("First Name (Optional):");
                    newMember.LastName  = Console.GetString("Last Name (Optional):");

                    var externalAccountIds = new Dictionary <string, string>();
                    foreach (var externalAccountType in externalAccountTypes)
                    {
                        var input = Console.GetString($"{externalAccountType.Label} (Optional):");
                        if (!string.IsNullOrEmpty(input))
                        {
                            externalAccountIds.Add(externalAccountType.Key, input);
                        }
                    }

                    if (externalAccountIds.Count > 0)
                    {
                        newMember.ExternalAccountIds = externalAccountIds;
                    }
                }

                var projectMember = _projectMemberService.CreateProjectMember(project.Id, newMember).Result;

                var addedMember = new MemberViewModel
                {
                    UserId   = projectMember.UserId,
                    Username = projectMember.Username,
                    Role     = projectMember.ProjectMemberRoleName
                };

                message = addedMember.ToCliString($"User has been added to project {Project}:");
                Logger.LogInformation(message);
            }
            else
            {
                message = $"Project {Project} was not found";
            }

            return(message);
        }