private void UpdatePullRequest(GitHubEventRepository repository, GitHubEventPullRequest pullRequest)
            {
                var index = _indexService.Index;

                if (index is null)
                {
                    return;
                }

                var crawledRepo = index.Repos.SingleOrDefault(r => r.Id == repository.Id);

                if (crawledRepo is null)
                {
                    return;
                }

                if (!crawledRepo.Issues.TryGetValue(pullRequest.Number, out var crawledIssue))
                {
                    return;
                }

                var oldTrieTerms = crawledIssue.GetTrieTerms();

                UpdateIssueOrPullRequest(repository, pullRequest, crawledIssue);
                UpdateTrie(crawledIssue, oldTrieTerms);

                _indexService.NotifyIndexChanged();
            }
            protected override void ProcessPullRequestMessage(GitHubEventMessage message, GitHubEventRepository repository, GitHubEventPullRequest pullRequest, GitHubEventPullRequestAction action)
            {
                switch (action)
                {
                case GitHubEventPullRequestAction.Opened:
                    AddIssueOrPullRequest(repository, pullRequest);
                    break;

                case GitHubEventPullRequestAction.Closed:
                case GitHubEventPullRequestAction.Reopened:
                case GitHubEventPullRequestAction.Edited:
                case GitHubEventPullRequestAction.Assigned:
                case GitHubEventPullRequestAction.Unassigned:
                case GitHubEventPullRequestAction.Labeled:
                case GitHubEventPullRequestAction.Unlabeled:
                case GitHubEventPullRequestAction.Locked:
                case GitHubEventPullRequestAction.Unlocked:
                case GitHubEventPullRequestAction.ConvertedToDraft:
                case GitHubEventPullRequestAction.ReadyForReview:
                    UpdatePullRequest(repository, pullRequest);
                    break;
                }
            }