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

NotifyProjects() private static method

private static NotifyProjects ( ) : void
return void
		private static void NotifyProjects()
		{
			Console.Write("Building references graph... ");
			Dictionary<string, string> servers;
			var graph = BuildReferencesGraph(out servers);
			Console.WriteLine("OK");

			Console.Write("Removing unnecessary edges... ");
			var cleared = graph.Clone();
			GraphHelper.RemoveExplicitEdges(cleared);
			Console.WriteLine("OK");

			IEnumerable<Edge<string>> outEdges;

			var projectsToReport = new List<string>();
			if (graph.TryGetOutEdges(Args.ProjectName, out outEdges))
			{
				projectsToReport.AddRange(outEdges.Select(edge => edge.Target));
			}

			foreach (var project in projectsToReport.OrderBy(i => i))
			{
				Execute.ReportUsage(project, servers[project]);
			}

			var projectsToNotify = new List<string>();
			if (cleared.TryGetOutEdges(Args.ProjectName, out outEdges))
			{
				projectsToNotify.AddRange(outEdges.Select(edge => edge.Target));
			}

			Console.WriteLine("Notifying dependant projects...");
			foreach (var project in projectsToNotify)
			{
				NotifyProject(project, servers[project]);
			}
		}