using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.DotNet.ProjectModel; using MultiProjectValidator.AnalysisRules; namespace MultiProjectValidator { public class ProjectAnalyzer { public static ProjectAnalyzer Create(List projectContexts) { // Any Additional rules would be added here var rules = new List { new DependencyMismatchRule() }; return new ProjectAnalyzer(rules, projectContexts); } private List projectContexts; private List rules; private ProjectAnalyzer(List rules, List projectContexts) { this.rules = rules; this.projectContexts = projectContexts; } public List DoAnalysis() { var results = new List(); foreach(var rule in rules) { results.Add(rule.Evaluate(projectContexts)); } return results; } } }