Skip to content

Commit

Permalink
Simplify
Browse files Browse the repository at this point in the history
  • Loading branch information
simpat-adam committed Jul 22, 2024
1 parent 3787ff9 commit 20e8c0b
Showing 1 changed file with 16 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,44 +80,44 @@ private static string ReplaceAbstractResourceNames(string resourceName)

public static Dictionary<string, int> GetDependencies(Dictionary<string, List<string>> resources)
{
Dictionary<string, int> orderedResources = resources.ToDictionary(d => d.Key, _ => 0);
Dictionary<string, int> visitedResources = [];
Dictionary<string, int> orderedNodes = resources.ToDictionary(d => d.Key, _ => 0);
Dictionary<string, int> visitedNodes = [];

foreach (var dependency in resources.OrderBy(d => d.Value.Count).ThenBy(d => d.Key).Select(d => d.Key))
foreach (var resource in resources.Select(d => d.Key))
{
RecursivelyDetermineDependencies(dependency, 0);
RecursivelyDetermineDependencies(resource);
}

int RecursivelyDetermineDependencies(string resourceName, int depth)
int RecursivelyDetermineDependencies(string resourceName)
{
if (orderedResources[resourceName] > 0)
if (orderedNodes[resourceName] > 0)
{
return orderedResources[resourceName];
return orderedNodes[resourceName];
}

visitedResources.TryAdd(resourceName, 0);
var maxDepth = depth;
visitedNodes.TryAdd(resourceName, 0);
var maxDepth = 0;
foreach (var dependency in resources[resourceName])
{
if (visitedResources.ContainsKey(dependency))
if (visitedNodes.ContainsKey(dependency))
{
if (visitedResources[dependency] > maxDepth)
if (visitedNodes[dependency] > maxDepth)
{
maxDepth = visitedResources[dependency];
maxDepth = visitedNodes[dependency];
}
}
else
{
var level = RecursivelyDetermineDependencies(dependency, depth);
var level = RecursivelyDetermineDependencies(dependency);
if (level > maxDepth)
maxDepth = level;
}
}
orderedResources[resourceName] = maxDepth + 1;
visitedResources[resourceName] = maxDepth + 1;
orderedNodes[resourceName] = maxDepth + 1;
visitedNodes[resourceName] = maxDepth + 1;
return maxDepth + 1;
}

return orderedResources;
return orderedNodes;
}
}

0 comments on commit 20e8c0b

Please sign in to comment.