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; } }