Example #1
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);
        }
Example #2
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);
        }