public static List <DimensionUsage> GetDimensionUsage(Cube c) { List <CubeDimension> listCubeDimensions = new List <CubeDimension>(); foreach (CubeDimension cd in c.Dimensions) { listCubeDimensions.Add(cd); } List <DimensionUsage> dimUsage = new List <DimensionUsage>(); foreach (MeasureGroup mg in c.MeasureGroups) { System.Diagnostics.Trace.Write("mg " + mg.Name); foreach (MeasureGroupDimension mgdim in mg.Dimensions) { System.Diagnostics.Trace.Write(",mgdim " + mgdim.Dimension.Name); if (mgdim is ReferenceMeasureGroupDimension) { ReferenceMeasureGroupDimension refMgDim = (ReferenceMeasureGroupDimension)mgdim; getReferencedMeasureGroupAttributeUsage(dimUsage, mg, refMgDim); } else if (mgdim is DegenerateMeasureGroupDimension) { DegenerateMeasureGroupDimension degMgDim = (DegenerateMeasureGroupDimension)mgdim; getFactMeasureGroupAttributeUsage(dimUsage, mg, degMgDim); } else if (mgdim is ManyToManyMeasureGroupDimension) { ManyToManyMeasureGroupDimension m2mMgDim = (ManyToManyMeasureGroupDimension)mgdim; getManyToManyMeasureGroupAttributeUsage(dimUsage, mg, m2mMgDim); } else if (mgdim is DataMiningMeasureGroupDimension) { DataMiningMeasureGroupDimension dmMgDim = (DataMiningMeasureGroupDimension)mgdim; getDataMiningMeasureGroupAttributeUsage(dimUsage, mg, dmMgDim); } else if (mgdim is RegularMeasureGroupDimension) { RegularMeasureGroupDimension regMDdim = (RegularMeasureGroupDimension)mgdim; getRegularMeasureGroupAttributeUsage(dimUsage, mg, regMDdim); } if (listCubeDimensions.Contains(mgdim.CubeDimension)) { listCubeDimensions.Remove(mgdim.CubeDimension); } } } //add any cube dimensions which aren't related to any measure groups foreach (CubeDimension cd in listCubeDimensions) { DimensionUsage du = new DimensionUsage(string.Empty, null, cd, cd.Dimension); dimUsage.Add(du); } return(dimUsage); }
/* * DataMining Col1 - Source Dimension Name * */ private static void getDataMiningMeasureGroupAttributeUsage(List <DimensionUsage> dimUsage, MeasureGroup mg, DataMiningMeasureGroupDimension dmMDdim) { DimensionUsage usage = new DimensionUsage("Data Mining", mg, dmMDdim.CubeDimension, dmMDdim.Dimension); usage.Column1Name = "Source Dimension"; usage.Column1Value = dmMDdim.Dimension.Name; dimUsage.Add(usage); }
/* * DataMining Col1 - Source Dimension Name * */ private static void getDataMiningMeasureGroupAttributeUsage(List<DimensionUsage> dimUsage, MeasureGroup mg, DataMiningMeasureGroupDimension dmMDdim) { DimensionUsage usage = new DimensionUsage("Data Mining", mg, dmMDdim.CubeDimension, dmMDdim.Dimension); usage.Column1Name = "Source Dimension"; usage.Column1Value = dmMDdim.Dimension.Name; dimUsage.Add(usage); }