String GetHierarchy(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); HierarchyInfo info = provider.GetHierarchy(args.CubeName, args.DimensionUniqueName, args.HierarchyUniqueName); return(XmlSerializationUtility.Obj2XmlStr(info, Common.Namespace)); }
String GetHierarchies(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); Dictionary <String, HierarchyInfo> list = provider.GetHierarchies(args.CubeName, args.DimensionUniqueName); return(XmlSerializationUtility.Obj2XmlStr(list.Values.ToList(), Common.Namespace)); }
String GetCubes(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); Dictionary <String, CubeDefInfo> list = provider.GetCubes(); return(XmlSerializationUtility.Obj2XmlStr(list.Values.ToList(), Common.Namespace)); }
String GetCubeMetadata(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); CubeDefInfo info = provider.GetCubeMetadata(args.CubeName, args.QueryType); return(XmlSerializationUtility.Obj2XmlStr(info, Common.Namespace)); }
String GetMeasureGroups(MetadataQuery args) { OlapMetadataProvider provider = new OlapMetadataProvider(new ConnectionInfo(args.Connection, GetConnectionString(args.Connection))); List <MeasureGroupInfo> list = provider.GetMeasureGroups(args.CubeName); return(XmlSerializationUtility.Obj2XmlStr(list, 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)); }