public static IEnumerable <DataModelIssue> LoadIssues( string fileName, Config config, IssueKindFlags issueKind = IssueKindFlags.All) { return(LoadIssues(fileName.ToEnumerable(), config, issueKind)); }
public static IEnumerable <DataModelIssue> LoadIssues( IEnumerable <string> fileNames, Config config, IssueKindFlags issueKind = IssueKindFlags.All) { IEnumerable <DataModelIssue> issues = new DataModelIssue[] {}; if (fileNames == null) { return(issues); } foreach (string fileName in fileNames) { JsonSerializer serializer = new JsonSerializer(); using (StreamReader sr = new StreamReader(fileName)) using (JsonReader reader = new JsonTextReader(sr)) { issues = issues.Concat(serializer.Deserialize <List <DataModelIssue> >(reader) .Where(i => i.IsIssueKind(issueKind))); } } // Process label/milestone aliases before repo filtering - its query might rely on the aliases foreach (DataModelIssue issue in issues) { issue.Labels = ApplyLabelAliases(issue.Labels, config.LabelAliasesMap).ToArray(); ApplyMilestoneAliases(issue.Milestone, config.MilestoneAliasesMap); } // Process repo filters after label aliases, the filter query might depend on them foreach (Repository repo in Repository.Repositories) { issues = repo.Filter(issues); } return(issues.ToArray()); }