protected virtual Target BuildTarget(AbstractItem item) { if (item is MeasuresXml || item is MeasureXml) return Target.Measures; if (item is MeasureGroupsXml || item is MeasureGroupXml) return Target.MeasureGroups; if (item is ColumnsXml || item is ColumnXml) return Target.Columns; if (item is TablesXml || item is TableXml) return Target.Tables; if (item is PropertiesXml || item is PropertyXml) return Target.Properties; if (item is LevelsXml || item is LevelXml) return Target.Levels; if (item is HierarchiesXml || item is HierarchyXml) return Target.Hierarchies; if (item is DimensionsXml || item is DimensionXml) return Target.Dimensions; if (item is SetsXml || item is SetXml) return Target.Sets; if (item is RoutinesXml || item is RoutineXml) return Target.Routines; if (item is PerspectivesXml || item is PerspectiveXml) return Target.Perspectives; else throw new ArgumentException(item.GetType().Name); }
protected override Target BuildTarget(AbstractItem item) { if (item is MeasureGroupXml) return Target.Dimensions; if (item is DimensionXml) return Target.MeasureGroups; else throw new ArgumentException(item.GetType().Name); }
protected override StructureDiscoveryCommand InstantiateCommand(AbstractItem item) { var factory = discoveryProvider.Instantiate(item.GetConnectionString()); var target = BuildTarget(item); var filters = BuildFilters(item); var command = factory.Instantiate(target, TargetType.Relation, filters); return command; }
protected virtual Target BuildTarget(AbstractItem item) { if (item is MeasureXml) return Target.Measures; if (item is ColumnXml) return Target.Columns; if (item is PropertyXml) return Target.Properties; throw new ArgumentException(item.GetType().Name); }
protected override IEnumerable<CaptionFilter> BuildFilters(AbstractItem item) { if (item is IPerspectiveFilter) yield return new CaptionFilter(Target.Perspectives, ((IPerspectiveFilter)item).Perspective); var itselfTarget = Target.Dimensions; if (item is MeasureGroupXml) itselfTarget=Target.MeasureGroups; yield return new CaptionFilter(itselfTarget, item.Caption); }
protected virtual IEnumerable<CaptionFilter> BuildFilters(AbstractItem item) { if (item is IPerspectiveFilter) yield return new CaptionFilter(Target.Perspectives, ((IPerspectiveFilter)item).Perspective); if (item is IDimensionFilter) yield return new CaptionFilter(Target.Dimensions, ((IDimensionFilter)item).Dimension); if (item is IHierarchyFilter) yield return new CaptionFilter(Target.Hierarchies, ((IHierarchyFilter)item).Hierarchy); if (item is ILevelFilter) yield return new CaptionFilter(Target.Levels, ((ILevelFilter)item).Level); if (item is IMeasureGroupFilter && !(string.IsNullOrEmpty(((IMeasureGroupFilter)item).MeasureGroup))) yield return new CaptionFilter(Target.MeasureGroups, ((IMeasureGroupFilter)item).MeasureGroup); //if (item is ISchemaFilter) // yield return new CaptionFilter(Target.Schemas, ((ISchemaFilter)item).Schema); if (item is ITableFilter) yield return new CaptionFilter(Target.Tables, ((ITableFilter)item).Table); var itselfTarget = BuildTarget(item); if (!string.IsNullOrEmpty(item.Caption)) yield return new CaptionFilter(itselfTarget, item.Caption); }
internal MetadataDiscoveryRequest Build(AbstractItem item, MetadataDiscoveryRequestType type) { var properties = new string[] { "Perspective", "Dimension", "Hierarchy", "Level", "Property", "MeasureGroup", "DisplayFolder", "Measure", "Table", "Column" }; IFilter filter = null; var filters = new List<IFilter>(); foreach (var property in properties) { filter = BuildCaptionFilter(item, property); if (filter != null) filters.Add(filter); } var target = GetTarget(item); filter = BuildCaptionFilterForCaptionProperty(item, target); if (filter != null) filters.Add(filter); var connectionString = item.GetConnectionString(); var factory = new DiscoveryRequestFactory(); MetadataDiscoveryRequest request = null; switch (type) { case MetadataDiscoveryRequestType.Direct: request = factory.BuildDirect(connectionString, target, filters); break; case MetadataDiscoveryRequestType.Relation: target = GetTargetRelation(item); request = factory.BuildRelation(connectionString, target, filters); break; default: break; } return request; }
protected virtual MetadataDiscoveryRequest InstantiateCommand(AbstractItem item) { var request = discoveryFactory.Build(item, MetadataDiscoveryRequestBuilder.MetadataDiscoveryRequestType.Direct); return request; }
protected override MetadataDiscoveryRequest InstantiateCommand(AbstractItem item) { var request = discoveryFactory.Build(item, MetadataDiscoveryRequestBuilder.MetadataDiscoveryRequestType.Relation); return request; }
protected virtual IDataTypeDiscoveryCommand InstantiateCommand(AbstractItem item) { var factory = discoveryProvider.Instantiate(item.GetConnectionString()); var target = BuildTarget(item); var filters = BuildFilters(item); var command = factory.Instantiate(target, filters); return command; }