Multi Project Validator
A tool which searches recursively for project.json files, runs a set of analyses and reports on the result. For CLI we have only one rule currently, that Dependencies between projects must be equivalent to avoid stomping.
This commit is contained in:
parent
b25c2743ca
commit
6ff7404a48
10 changed files with 404 additions and 1 deletions
46
tools/MultiProjectValidator/ProjectAnalyzer.cs
Normal file
46
tools/MultiProjectValidator/ProjectAnalyzer.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
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<ProjectContext> projectContexts)
|
||||
{
|
||||
// Any Additional rules would be added here
|
||||
var rules = new List<IAnalysisRule>
|
||||
{
|
||||
new DependencyMismatchRule()
|
||||
};
|
||||
|
||||
return new ProjectAnalyzer(rules, projectContexts);
|
||||
}
|
||||
|
||||
private List<ProjectContext> projectContexts;
|
||||
private List<IAnalysisRule> rules;
|
||||
|
||||
private ProjectAnalyzer(List<IAnalysisRule> rules, List<ProjectContext> projectContexts)
|
||||
{
|
||||
this.rules = rules;
|
||||
this.projectContexts = projectContexts;
|
||||
}
|
||||
|
||||
public List<AnalysisResult> DoAnalysis()
|
||||
{
|
||||
var results = new List<AnalysisResult>();
|
||||
|
||||
foreach(var rule in rules)
|
||||
{
|
||||
results.Add(rule.Evaluate(projectContexts));
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue