示例#1
0
        private static SimpleDataSet ToSimpleDataSet(GithubPullRequestModel pullRequest, IEnumerable <SearchResult> contributors, string indexType)
        {
            var simpleDataSet = new SimpleDataSet
            {
                RowData        = new Dictionary <string, string>(),
                NodeDefinition = new IndexedNode {
                    NodeId = pullRequest.Id, Type = indexType
                }
            };

            simpleDataSet.RowData.Add("repository", pullRequest.Repository);
            simpleDataSet.RowData.Add("state", pullRequest.State);
            simpleDataSet.RowData.Add("title", pullRequest.Title);
            simpleDataSet.RowData.Add("createdAt", pullRequest.CreatedAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty);
            simpleDataSet.RowData.Add("updatedAt", pullRequest.UpdatedAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty);
            simpleDataSet.RowData.Add("closedAt", pullRequest.ClosedAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty);
            simpleDataSet.RowData.Add("mergedAt", pullRequest.MergedAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty);
            simpleDataSet.RowData.Add("userId", pullRequest.User.Id.ToString());
            simpleDataSet.RowData.Add("userLogin", pullRequest.User.Login);

            var contributor = contributors.FirstOrDefault(x =>
                                                          string.Equals(x.Fields["github"], pullRequest.User.Login, StringComparison.InvariantCultureIgnoreCase));

            if (contributor != null)
            {
                simpleDataSet.RowData.Add("memberId", contributor.Id.ToString());
            }

            return(simpleDataSet);
        }
示例#2
0
        public void UpdateIndex(GithubPullRequestModel pullRequest, IEnumerable <SearchResult> contributors)
        {
            var simpleDataSet = ToSimpleDataSet(pullRequest, contributors, IndexType);
            var examineNode   = simpleDataSet.RowData.ToExamineXml(pullRequest.Id, IndexType);

            ExamineManager.Instance.IndexProviderCollection["PullRequestIndexer"].ReIndexNode(examineNode, IndexType);
        }
示例#3
0
        private GithubPullRequestModel GetPullRequest(OurUmbraco.Community.Models.Repository repository, string pullRequestNumber)
        {
            GithubPullRequestModel prModel = null;

            var store         = repository.IssuesStorageDirectory() + "/pulls/";
            var issueFile     = store + pullRequestNumber + ".pull.combined.json";
            var issueFilePath = HostingEnvironment.MapPath(issueFile);

            if (File.Exists(issueFilePath))
            {
                var content = File.ReadAllText(issueFilePath);
                prModel = JsonConvert.DeserializeObject <GithubPullRequestModel>(content);
            }

            return(prModel);
        }