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;
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
 protected virtual MetadataDiscoveryRequest InstantiateCommand(AbstractItem item)
 {
     var request = discoveryFactory.Build(item, MetadataDiscoveryRequestBuilder.MetadataDiscoveryRequestType.Direct);
     return request;
 }
Ejemplo n.º 9
0
 protected override MetadataDiscoveryRequest InstantiateCommand(AbstractItem item)
 {
     var request = discoveryFactory.Build(item, MetadataDiscoveryRequestBuilder.MetadataDiscoveryRequestType.Relation);
     return request;
 }
Ejemplo n.º 10
0
        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;
        }