Change Output format to match PR feedback

Don't use Environment.Exit()

PR Feedback, Unecessary Usings and Immutable types
This commit is contained in:
Bryan 2015-12-15 18:09:08 -08:00
parent dd5c0bb423
commit 3b848c0487
9 changed files with 169 additions and 56 deletions

View file

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
namespace ProjectSanity.AnalysisRules.DependencyMismatch
{
internal class DependencyGroup
{
public static DependencyGroup CreateWithEntry(DependencyInfo dependencyInfo)
{
var dependencyGroup = new DependencyGroup
{
DependencyName = dependencyInfo.Name,
VersionDependencyInfoMap = new Dictionary<string, List<DependencyInfo>>()
};
dependencyGroup.AddEntry(dependencyInfo);
return dependencyGroup;
}
public string DependencyName { get; private set; }
public Dictionary<string, List<DependencyInfo>> VersionDependencyInfoMap { get; private set; }
public bool HasConflict
{
get
{
return VersionDependencyInfoMap.Count > 1;
}
}
public void AddEntry(DependencyInfo dependencyInfo)
{
if (!dependencyInfo.Name.Equals(DependencyName, StringComparison.OrdinalIgnoreCase))
{
throw new Exception("Added dependency does not match group");
}
if (VersionDependencyInfoMap.ContainsKey(dependencyInfo.Version))
{
VersionDependencyInfoMap[dependencyInfo.Version].Add(dependencyInfo);
}
else
{
VersionDependencyInfoMap[dependencyInfo.Version] = new List<DependencyInfo>()
{
dependencyInfo
};
}
}
}
}