CCNet.Build.NotifyProjects.Program.BuildReferencesGraph C# (CSharp) Method

BuildReferencesGraph() private static method

private static BuildReferencesGraph ( string>.Dictionary &servers ) : Edge>.AdjacencyGraph
servers string>.Dictionary
return Edge>.AdjacencyGraph
		private static AdjacencyGraph<string, Edge<string>> BuildReferencesGraph(out Dictionary<string, string> servers)
		{
			servers = new Dictionary<string, string>();

			var graph = new AdjacencyGraph<string, Edge<string>>();
			foreach (var serverName in Args.ServerNames.Split('|'))
			{
				var projectsPath = Paths.ProjectsFolder(serverName);
				foreach (var projectFolder in Directory.GetDirectories(projectsPath))
				{
					var projectName = Path.GetFileName(projectFolder);
					var referencesFolder = Path.Combine(projectFolder, Args.ReferencesFolder);

					servers.Add(projectName, serverName);

					if (!Directory.Exists(referencesFolder))
						continue;

					var referenceFiles = Directory.GetFiles(referencesFolder).Select(Path.GetFileNameWithoutExtension);

					graph.AddVerticesAndEdgeRange(referenceFiles.Select(referenceName => new Edge<string>(referenceName, projectName)));
				}
			}

			return graph;
		}