@@ -106,6 +106,7 @@ public async Task<List<string>> CalculateCube(string systemName, SessionDetails
106106 #region private methods
107107 private void AddMeaureToData ( List < string > data , Measure measure , MeasureResult measureResult , List < DimensionResult > dimensionResults )
108108 {
109+ //The CubeDimensionHeaders private class is used to convert an n-dimensional cube into a series of 2D tables to output.
109110 CubeDimensionHeaders cubeDimensionHeaders = new CubeDimensionHeaders ( dimensionResults ) ;
110111
111112 if ( measureResult . Rows . Count < 1 )
@@ -116,20 +117,19 @@ private void AddMeaureToData(List<string> data, Measure measure, MeasureResult m
116117 {
117118 data . Add ( dimensionResults [ 0 ] . HeaderDescriptions ) ;
118119 data . Add ( measureResult . Rows [ 0 ] ) ;
120+ return ;
119121 }
120- else
122+
123+ for ( int rowIndex = 0 ; rowIndex < measureResult . Rows . Count ; rowIndex ++ )
121124 {
122- for ( int rowIndex = 0 ; rowIndex < measureResult . Rows . Count ; rowIndex ++ )
125+ int dimension1Index = cubeDimensionHeaders . GetItemIndex ( rowIndex , 1 ) ;
126+ if ( dimension1Index == 0 )
123127 {
124- int dimension1Index = cubeDimensionHeaders . GetItemIndex ( rowIndex , 1 ) ;
125- if ( dimension1Index == 0 )
126- {
127- data . Add ( "" ) ;
128- data . Add ( GetSubCubeDescription ( rowIndex , cubeDimensionHeaders ) ) ;
129- data . Add ( "\t " + dimensionResults [ 0 ] . HeaderDescriptions ) ;
130- }
131- data . Add ( cubeDimensionHeaders . GetDimensionHeader ( 1 , dimension1Index ) + "\t " + measureResult . Rows [ rowIndex ] ) ;
128+ data . Add ( "" ) ;
129+ data . Add ( GetSubCubeDescription ( rowIndex , cubeDimensionHeaders ) ) ;
130+ data . Add ( "\t " + dimensionResults [ 0 ] . HeaderDescriptions ) ;
132131 }
132+ data . Add ( cubeDimensionHeaders . GetDimensionHeader ( 1 , dimension1Index ) + "\t " + measureResult . Rows [ rowIndex ] ) ;
133133 }
134134 }
135135
@@ -145,6 +145,7 @@ private string GetMeasureDescription(Measure measure)
145145 }
146146 }
147147
148+ //Get the name of each 2D cube, by finding the points of each dimension bigger then the first 2D.
148149 private string GetSubCubeDescription ( int rowIndex , CubeDimensionHeaders cubeDimensionHeaders )
149150 {
150151 List < string > descriptions = new List < string > ( ) ;
0 commit comments