コード例 #1
0
        public virtual AdomdDiscoveryCommand BuildInternal(MetadataDiscoveryRequest request)
        {
            AdomdDiscoveryCommand cmd = null;

            cmd         = BuildBase(request.Target, request.ConnectionString);
            cmd.Filters = request.GetAllFilters().Where(f => f.Target == request.Target);

            return(cmd);
        }
コード例 #2
0
        public virtual AdomdDiscoveryCommand BuildInternal(MetadataDiscoveryRequest request)
        {
            AdomdDiscoveryCommand cmd = null;

            cmd = BuildBase(request.Target, request.ConnectionString);
            cmd.Filters = request.GetAllFilters().Where(f => f.Target == request.Target);

            return cmd;
        }
コード例 #3
0
        protected bool Process(MetadataDiscoveryRequest actual)
        {
            Request = actual;
            var factory = CommandFactory;
            var command = BuildCommand(factory, actual);
            IEnumerable <IField> structures = command.Execute();

            return(this.Matches(structures));
        }
コード例 #4
0
        public void Execute_OnPerspectiveNamedInternetOperation_ListStructureContainingTenTables()
        {
            var request = new MetadataDiscoveryRequest();
            request.SpecifyFilter(new CaptionFilter("Internet Operation", DiscoveryTarget.Perspectives));

            var disco = new TableDiscoveryCommand(ConnectionStringReader.GetAdomdTabular());
            disco.Filters = request.GetAllFilters();

            var structs = disco.Execute();

            Assert.That(structs.Count(), Is.EqualTo(10));
        }
コード例 #5
0
        public void Execute_OnPerspectiveNamedInternetOperation_ListStructureContainingTenTables()
        {
            var request = new MetadataDiscoveryRequest();

            request.SpecifyFilter(new CaptionFilter("Internet Operation", DiscoveryTarget.Perspectives));

            var disco = new TableDiscoveryCommand(ConnectionStringReader.GetAdomdTabular());

            disco.Filters = request.GetAllFilters();

            var structs = disco.Execute();

            Assert.That(structs.Count(), Is.EqualTo(10));
        }
コード例 #6
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 = new ConnectionStringHelper().Execute(item, Xml.Settings.SettingsXml.DefaultScope.SystemUnderTest);

            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);
        }
コード例 #7
0
        public virtual AdomdDiscoveryCommand BuildLinkedTo(MetadataDiscoveryRequest request)
        {
            AdomdDiscoveryCommand cmd = null;

            switch (request.Target)
            {
                case DiscoveryTarget.MeasureGroups:
                    cmd= new DimensionLinkedToDiscoveryCommand(request.ConnectionString);
                    break;
                case DiscoveryTarget.Dimensions:
                    cmd= new MeasureGroupLinkedToDiscoveryCommand(request.ConnectionString);
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
            cmd.Filters = request.GetAllFilters();

            return cmd;
        }
コード例 #8
0
        public virtual AdomdDiscoveryCommand BuildLinkedTo(MetadataDiscoveryRequest request)
        {
            AdomdDiscoveryCommand cmd = null;

            switch (request.Target)
            {
            case DiscoveryTarget.MeasureGroups:
                cmd = new DimensionLinkedToDiscoveryCommand(request.ConnectionString);
                break;

            case DiscoveryTarget.Dimensions:
                cmd = new MeasureGroupLinkedToDiscoveryCommand(request.ConnectionString);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            cmd.Filters = request.GetAllFilters();

            return(cmd);
        }
コード例 #9
0
ファイル: DiscoveryRequestFactory.cs プロジェクト: zyh329/nbi
        public virtual MetadataDiscoveryRequest BuildDirect(string connectionString, DiscoveryTarget target, IEnumerable<IFilter> filters)
        {
            //Validations
            Validate(
                new List<Validation>()
                {
                    new ConnectionStringNotEmpty(connectionString),
                    !target.Equals(DiscoveryTarget.Perspectives) ? (Validation)new PerspectiveNotNull(filters) : new NoValidation(),
                    new MeasureGroupWithoutDimension(filters),
                    new MeasureWithoutDimension(filters),
                    new MeasureNotNull(filters),
                    new DimensionNotNullIfHierarchy(target, filters),
                    new HierarchyNotNullIfLevel(target, filters),
                    new LevelNotNullIfProperty(target, filters),
                    new TableNotNullIfColumn(target, filters)
                }
            );

            //If validation of parameters is successfull then we build the object
            var disco = new MetadataDiscoveryRequest(connectionString, target, filters);
            return disco;
        }
コード例 #10
0
ファイル: LinkedToConstraint.cs プロジェクト: zyh329/nbi
 /// <summary>
 /// Change the standard Build using BuildExact by BuildLinkedTo
 /// </summary>
 /// <param name="factory"></param>
 /// <param name="actual"></param>
 /// <returns></returns>
 protected override AdomdDiscoveryCommand BuildCommand(AdomdDiscoveryCommandFactory factory, MetadataDiscoveryRequest request)
 {
     return(factory.BuildLinkedTo(request));
 }
コード例 #11
0
 protected bool Process(MetadataDiscoveryRequest actual)
 {
     Request = actual;
     var factory = CommandFactory;
     var command = BuildCommand(factory,actual);
     IEnumerable<IField> structures = command.Execute();
     return this.Matches(structures);
 }
コード例 #12
0
 protected virtual AdomdDiscoveryCommand BuildCommand(AdomdDiscoveryCommandFactory factory, MetadataDiscoveryRequest actual)
 {
     return factory.BuildExact(actual);
 }
コード例 #13
0
 protected virtual AdomdDiscoveryCommand BuildCommand(AdomdDiscoveryCommandFactory factory, MetadataDiscoveryRequest actual)
 {
     return(factory.BuildExact(actual));
 }
コード例 #14
0
ファイル: LinkedToConstraint.cs プロジェクト: zyh329/nbi
 /// <summary>
 /// Change the standard Build using BuildExact by BuildLinkedTo
 /// </summary>
 /// <param name="factory"></param>
 /// <param name="actual"></param>
 /// <returns></returns>
 protected override AdomdDiscoveryCommand BuildCommand(AdomdDiscoveryCommandFactory factory, MetadataDiscoveryRequest request)
 {
     return factory.BuildLinkedTo(request);
 }