Exemplo n.º 1
0
        public async Task Handle(CheckCommentAnswerResponse message, IMessageHandlerContext context)
        {
            switch (message.Status)
            {
            case CommentAnswerStatus.Rejected:
                this.MarkAsComplete();
                break;

            case CommentAnswerStatus.NotAddded:
                this.Data.ETag = message.ETag;

                await this.RequestTimeout <CheckCommentAnswerTimeout>(
                    context,
                    TimeSpan.FromSeconds(this.configurationManager.CommentResponseAddedSagaTimeoutInSeconds)).ConfigureAwait(false);

                break;

            case CommentAnswerStatus.Approved:
                await context.Send <SendEmail>(msg =>
                {
                    msg.UserName              = this.Data.UserName;
                    msg.UserEmail             = this.Data.UserEmail;
                    msg.FileName              = this.Data.FileName;
                    msg.CommentResponseStatus = message.Status;
                }).ConfigureAwait(false);

                this.MarkAsComplete();
                break;

            default:
                throw new ArgumentException($"Not supported comment response status: {message.Status}");
            }
        }
Exemplo n.º 2
0
        public async Task Handle(RequestCheckCommentAnswer message, IMessageHandlerContext context)
        {
            string userAgent          = this.configurationManager.UserAgent;
            string authorizationToken = this.configurationManager.AuthorizationToken;
            string pullRequestUri     = message.PullRequestUri;
            string etag = message.Etag;

            CheckCommentAnswerResponse answer = await this.GetCommentAnswer(
                () => this.gitHubApi.IsPullRequestOpen(
                    userAgent,
                    authorizationToken,
                    pullRequestUri,
                    etag),
                () => this.gitHubApi.IsPullRequestMerged(
                    userAgent,
                    authorizationToken,
                    pullRequestUri)).ConfigureAwait(false);

            await context.Reply(answer).ConfigureAwait(false);
        }