Esempio n. 1
0
        public async Task Handler(string batonName, int prNumber, string appId, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            var queue = await service.GetQueueForBaton(batonName);

            var name = turnContext.Activity.From.Name.Replace(" | Redington", "").Replace(" | Godel", "");

            if (queue?.Count <= 0)
            {
                return;
            }

            var batonPrRequest = queue.FirstOrDefault(x => x.UserName.Equals(name));

            if (batonPrRequest.PullRequestNumber > 0)
            {
                var repo = this.repoMapper.GetRepositoryNameFromBatonName(batonName);

                if (!string.IsNullOrEmpty(repo))
                {
                    var result = await this.gitHubService.MergePullRequest(repo, batonPrRequest.PullRequestNumber);

                    if (result.Succeeded)
                    {
                        var reply = MessageFactory.Text($"That has been merged");
                        _ = await turnContext.SendActivityAsync(reply, cancellationToken);
                    }
                    else
                    {
                        var reply = MessageFactory.Text($"Something went wrong - {result.ReasonForFailure}");
                        _ = await turnContext.SendActivityAsync(reply, cancellationToken);
                    }
                }
            }
        }
        public async Task Get(string batonName)
        {
            var queue = await service.GetQueueForBaton(batonName);

            if (queue != null && queue.Count > 1)
            {
                var batonHolder = queue.Skip(1).FirstOrDefault();

                if (batonHolder != null)
                {
                    var repoName = this.repoMapper.GetRepositoryNameFromBatonName(batonName);

                    if (!string.IsNullOrEmpty(repoName))
                    {
                        var reply = MessageFactory.Attachment(new List <Attachment>());
                        reply.Attachments.Add(
                            this.cardCreator.GetUpdateYourBranchCard(batonName, repoName, batonHolder.PullRequestNumber)
                            .ToAttachment());

                        await((BotAdapter)adapter).ContinueConversationAsync(
                            appId,
                            batonHolder.Conversation,
                            async(context, token) =>
                            await SendMessage(reply, context, token),
                            default(CancellationToken));
                    }
                }
            }
        }
Esempio n. 3
0
        public async Task Get(string batonName)
        {
            var queue = await service.GetQueueForBaton(batonName);

            var batonHolder = queue?.FirstOrDefault();

            if (batonHolder != null)
            {
                var repoName = this.mapper.GetRepositoryNameFromBatonName(batonName);

                if (!string.IsNullOrEmpty(repoName))
                {
                    await ((BotAdapter)this.adapter).ContinueConversationAsync(
                        this.appId,
                        batonHolder.Conversation,
                        async (context, token) =>
                            await this.SendMessage( $"Build was successful time to deploy for {batonName}", context, token),
                        default(CancellationToken));
                }
            }
        }