public List<string> ExpandDependency(DependencyGraph dependencyGraph, Func<DependencyItem, bool> isValid)
{
var newChanges = new List<string>();
if (dependencyGraph != null)
{
foreach (var from in dependencyGraph.FromNodes)
{
if (dependencyGraph.GetAllDependencyFrom(from).Any(d => isValid(d) && _changeDict.ContainsKey(d.To) && _changeDict[d.To] != ChangeKindWithDependency.None))
{
if (!_changeDict.ContainsKey(from))
{
_changeDict[from] = ChangeKindWithDependency.DependencyUpdated;
newChanges.Add(from);
}
else
{
if (_changeDict[from] == ChangeKindWithDependency.None)
{
newChanges.Add(from);
}
_changeDict[from] |= ChangeKindWithDependency.DependencyUpdated;
}
}
}
}
return newChanges;
}