TryCalculateGraphMetrics ( IGraph graph, CalculateGraphMetricsContext calculateGraphMetricsContext, out GraphMetricColumn [] graphMetricColumns ) { Debug.Assert(graph != null); Debug.Assert(calculateGraphMetricsContext != null); AssertValid(); graphMetricColumns = null; // Partition the graph into clusters using the ClusterCalculator class // in the Algorithms namespace, which knows nothing about Excel. ICollection <Community> oCommunities; Algorithms.ClusterCalculator oClusterCalculator = new Algorithms.ClusterCalculator(); oClusterCalculator.Algorithm = m_eAlgorithm; oClusterCalculator.PutNeighborlessVerticesInOneCluster = m_bPutNeighborlessVerticesInOneCluster; if (!oClusterCalculator.TryCalculateGraphMetrics(graph, calculateGraphMetricsContext.BackgroundWorker, out oCommunities)) { // The user cancelled. return(false); } // Convert the collection of communities to an array of // GraphMetricColumn objects. graphMetricColumns = GroupsToGraphMetricColumnsConverter.Convert <Community>( oCommunities, (oCommunity) => oCommunity.Vertices ); return(true); }
TryCalculateGraphMetrics ( IGraph graph, CalculateGraphMetricsContext calculateGraphMetricsContext, out GraphMetricColumn [] graphMetricColumns ) { Debug.Assert(graph != null); Debug.Assert(calculateGraphMetricsContext != null); AssertValid(); graphMetricColumns = null; // Partition the graph into clusters using the ClusterCalculator class // in the Algorithms namespace, which knows nothing about Excel. ICollection<Community> oCommunities; Algorithms.ClusterCalculator oClusterCalculator = new Algorithms.ClusterCalculator(); oClusterCalculator.Algorithm = m_eAlgorithm; oClusterCalculator.PutNeighborlessVerticesInOneCluster = m_bPutNeighborlessVerticesInOneCluster; if ( !oClusterCalculator.TryCalculateGraphMetrics(graph, calculateGraphMetricsContext.BackgroundWorker, out oCommunities) ) { // The user cancelled. return (false); } // Convert the collection of communities to an array of // GraphMetricColumn objects. graphMetricColumns = GroupsToGraphMetricColumnsConverter.Convert<Community>( oCommunities, (oCommunity) => oCommunity.Vertices ); return (true); }