public EmbedContent ParseHttpResponseToEmbedContent(HttpResponseMessage response)
        {
            var embedContent = new EmbedContent
            {
                Title = "GitHub Join Team: "
            };

            if (response.IsSuccessStatusCode)
            {
                embedContent.Title      += "Successful";
                embedContent.Description = $"Welcome to Team {_teamSlug}, {_context.User.Mention}!";
            }
            else
            {
                var errMsg =
                    $"There was an error requesting to join the Organization's Team! GitHub's reason was: {response.ReasonPhrase}";

                _logger.Error(errMsg);

                embedContent.Title      += "Failed";
                embedContent.Description = errMsg;
            }

            return(embedContent);
        }
        private async Task <EmbedContent> CreateInactiveProjectAsync()
        {
            var embedContent = new EmbedContent();

            var projectName = ParseCommandArguments.ParseBy(' ', _projectName)[0];

            // Check if a project exists before creating one (unique project names)
            if (await _projectManager.DoesProjectExistAsync(projectName))
            {
                embedContent.Title       = "Failed";
                embedContent.Description = $"Could not create new inactive project, **{projectName}** already exists!";
            }

            // If no project exists by that name
            else
            {
                var user = new Member(_context.User);

                // Create a new project
                Project newProject = await _projectManager.CreateProjectAsync(projectName, user);

                embedContent.Title       = "Success";
                embedContent.Description = $"Successfully created inactive project **{newProject.Name}**!"
                                           + Environment.NewLine
                                           + Environment.NewLine
                                           + newProject;
            }

            return(embedContent);
        }
        public override async Task <Embed> ExecuteAsync()
        {
            var newChannel = await _context.Guild.CreateTextChannelAsync(_newChannelName);

            var embedContent = new EmbedContent();

            if (newChannel is not null)
            {
                embedContent.Title       = $"Make Channel: {newChannel.Name}";
                embedContent.Description = $"Successfully made new channel: <#{newChannel.Id}>";
            }
            else
            {
                embedContent.Title       = $"Make Channel: {newChannel.Name}";
                embedContent.Description = $"Failed to make new channel: {newChannel.Name}";
            }

            var embed = new EmbedBuilder()
                        .WithColor(Color.Purple)
                        .WithTitle(embedContent.Title)
                        .WithDescription(embedContent.Description)
                        .WithAuthor(_context.Message.Author)
                        .Build();

            return(embed);
        }
Пример #4
0
        private async Task <EmbedContent> JoinProjectAsync()
        {
            var embedContent = new EmbedContent();

            var projectName = ParseCommandArguments.ParseBy(' ', _projectName)[0];

            var user = new Member(_context.User);

            // Attempt to join the project
            var result = await _projectManager.JoinProjectAsync(projectName, user);

            // Get the updated project object
            var project = await _projectManager.GetProjectAsync(projectName);

            // If joining was successful
            if (result)
            {
                embedContent.Title       = "Success";
                embedContent.Description = $"{_context.User} has successfully joined project **{projectName}**!"
                                           + Environment.NewLine
                                           + Environment.NewLine
                                           + project;

                // If project has become active from new user
                if (project.IsActive)
                {
                    TransitionToActiveProject(project);
                }
            }
            else
            {
                embedContent.Title       = "Failed";
                embedContent.Description = $"{_context.User} failed to join project **{projectName}**!"
                                           + Environment.NewLine
                                           + Environment.NewLine
                                           + project;
            }

            return(embedContent);
        }
        private async Task <EmbedContent> ListProjectsAsync()
        {
            var embedContent = new EmbedContent();

            var sb = new StringBuilder();

            // Read all projects
            var projects = new List <Project>();

            projects.AddRange(await _projectRepository.ReadAllAsync());

            for (var i = 0; i < projects.Count; i++)
            {
                sb.Append($"[{i+1}/{projects.Count}]" + projects[i]
                          + Environment.NewLine
                          + Environment.NewLine);
            }

            embedContent.Title       = $"List Projects ({projects.Count})"; // "List Projects (0)"
            embedContent.Description = sb.ToString();                       // "some-project ; Created by: SomeUser#1234 \r\n Current Members: SomeUser#1234 \r\n "
            return(embedContent);
        }
Пример #6
0
        public async Task <EmbedContent> ParseHttpResponseToEmbedContentAsync(HttpResponseMessage response)
        {
            var embedContent = new EmbedContent
            {
                Title = "GitHub List Team Members"
            };

            if (response.IsSuccessStatusCode)
            {
                var descriptionSb = new StringBuilder();
                var json          = await response.Content.ReadAsStringAsync();

                var teamMembersJToken = JToken.Parse(json);
                var count             = teamMembersJToken.Count();

                descriptionSb.Append($"**Total Members on Team {_gitHubTeamSlug}: {count}**{Environment.NewLine}");

                for (var i = 0; i < count; i++)
                {
                    descriptionSb.Append($"{i + 1}: {teamMembersJToken[i]["login"]} ({teamMembersJToken[i]["url"]}){Environment.NewLine}");
                }

                embedContent.Title      += "Successful";
                embedContent.Description = descriptionSb.ToString();
            }
            else
            {
                var errMsg =
                    $"There was an error requesting to list the Team's Members! GitHub's reason was: {response.ReasonPhrase}";

                _logger.Error(errMsg);

                embedContent.Title      += ": Failed";
                embedContent.Description = errMsg;
            }

            return(embedContent);
        }