String GetLevels(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); Dictionary<String, LevelInfo> list = provider.GetLevels(args.CubeName, args.DimensionUniqueName, args.HierarchyUniqueName); return XmlSerializationUtility.Obj2XmlStr(list.Values.ToList(), Common.Namespace); }
String GetLevelProperties(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); // Делать коллекцию с ключем "Имя свойства" нельзя, т.к. свойства KEY1, KEY2 и т.д. есть не у всех уровней и например в контроле выбора элемента измерения при построении уловия поиска придется проверять для каких уровней они есть, а для каких нету List<LevelPropertyInfo> list = new List<LevelPropertyInfo>(); if (String.IsNullOrEmpty(args.LevelUniqueName)) { Dictionary<String, LevelInfo> levels = provider.GetLevels(args.CubeName, args.DimensionUniqueName, args.HierarchyUniqueName); foreach (LevelInfo li in levels.Values) { Dictionary<String, LevelPropertyInfo> properties = provider.GetLevelProperties(args.CubeName, args.DimensionUniqueName, args.HierarchyUniqueName, li.UniqueName); foreach (LevelPropertyInfo pi in properties.Values) { list.Add(pi); } } } else { Dictionary<string, LevelPropertyInfo> properties = provider.GetLevelProperties(args.CubeName, args.DimensionUniqueName, args.HierarchyUniqueName, args.LevelUniqueName); foreach (LevelPropertyInfo pi in properties.Values) { list.Add(pi); } } return XmlSerializationUtility.Obj2XmlStr(list, Common.Namespace); }