public SortedDictionary <string, ADOTabularColumn> Visit(ADOTabularColumnCollection columns) { var ret = new SortedDictionary <string, ADOTabularColumn>(); var resColl = new AdomdRestrictionCollection { { "HIERARCHY_ORIGIN", 2 }, { "CUBE_NAME", columns.Table.Model.Name }, { "DIMENSION_UNIQUE_NAME", $"[{columns.Table.Caption}" }, { "HIERARCHY_VISIBILITY", _conn.ShowHiddenObjects ? (int)(MdschemaVisibility.Visible | MdschemaVisibility.NonVisible) : (int)(MdschemaVisibility.Visible) } }; DataTable dtHier = _conn.GetSchemaDataSet("MDSCHEMA_HIERARCHIES", resColl).Tables[0]; foreach (DataRow dr in dtHier.Rows) { ret.Add(dr[""].ToString() , new ADOTabularColumn(columns.Table , dr["HIERARCHY_NAME"].ToString() , dr["HIERARCHY_NAME"].ToString() , dr["HIERARCHY_CAPTION"].ToString() , dr["DESCRIPTION"].ToString() , bool.Parse(dr["HIERARCHY_IS_VISIBLE"].ToString()) , ADOTabularObjectType.Column , "") ); } var resCollMeasures = new AdomdRestrictionCollection { { "CUBE_NAME", columns.Table.Model.Name }, { "MEASUREGROUP_NAME", columns.Table.Caption }, { "MEASURE_VISIBILITY", _conn.ShowHiddenObjects ? (int)(MdschemaVisibility.Visible | MdschemaVisibility.NonVisible) : (int)(MdschemaVisibility.Visible) } }; DataTable dtMeasures = _conn.GetSchemaDataSet("MDSCHEMA_MEASURES", resCollMeasures).Tables[0]; foreach (DataRow dr in dtMeasures.Rows) { ret.Add(dr["MEASURE_NAME"].ToString() , new ADOTabularColumn(columns.Table , dr["MEASURE_NAME"].ToString() , dr["MEASURE_NAME"].ToString() , dr["MEASURE_CAPTION"].ToString() , dr["DESCRIPTION"].ToString() , bool.Parse(dr["MEASURE_IS_VISIBLE"].ToString()) , ADOTabularObjectType.Measure , "") ); } return(ret); }
SortedDictionary <string, ADOTabularColumn> IMetaDataVisitor.Visit(ADOTabularColumnCollection columns) { return(new SortedDictionary <string, ADOTabularColumn>()); }