Ejemplo n.º 1
0
        /// <summary>
        /// config the business logic
        /// </summary>
        public static void ConfigBusiness()
        {
            //从config文件加载数据库连接字符串
            mongoHost       = ConfigurationManager.AppSettings["MongoHost"];
            mongoDatabase   = ConfigurationManager.AppSettings["MongoDatabase"];
            mongoCollection = ConfigurationManager.AppSettings["MongoCollection"];
            cassandraInit   = ConfigurationManager.ConnectionStrings["CassandraDB"].ConnectionString;
            //初始化StorageEngine
            var cassandraStorageEngine = new CassandraIndexEngine();//CassandraEngine

            cassandraStorageEngine.Init(cassandraInit);
            //初始化CoreApi
            MyCoreApi = CoreApi.GetInstance();
            MyCoreApi.CoreService.Init(mongoHost, mongoDatabase, mongoCollection, (IStorageEngine)cassandraStorageEngine);
            //添加QueryPlugIn
            var pathQueryPlugIn = new PathQueryPlugIn(MyCoreApi.CoreService);

            MyCoreApi.AddQueryPlugin(pathQueryPlugIn);
            var idQueryPlugin = new IDQueryPlugIn(MyCoreApi.CoreService);

            MyCoreApi.AddQueryPlugin(idQueryPlugin);

            //添加DataTypePlugin
            var fixedWaveDataTypePlugin = new FixedWaveDataTypePlugin(MyCoreApi.CoreService);

            MyCoreApi.AddDataTypePlugin(fixedWaveDataTypePlugin);

            //添加ExpressionPlugin
            var expressionPlugin = new ExpressionPlugin(MyCoreApi.CoreService);

            MyCoreApi.AddDataTypePlugin(expressionPlugin);

            //将继承类在MongoDB中进行注册
            MyCoreApi.CoreService.RegisterClassMap <FixedIntervalWaveSignal>();
            //MyCoreApi.MyCoreService.RegisterClassMap<IntFixedIntervalWaveSignal>();
            //MyCoreApi.MyCoreService.RegisterClassMap<DoubleFixedIntervalWaveSignal>();
            //创建DTO映射
            ConfigDtoMapping();

            SetExpressionRoot();
        }
Ejemplo n.º 2
0
        public void IdQueryTest()
        {
            IDQueryPlugIn idQueryPlugIn = new IDQueryPlugIn(myCoreApi.MyCoreService);

            myCoreApi.AddQueryPlugin(idQueryPlugIn);
            IQueryPlugIn             queryPlugin = null;
            IEnumerable <JDBCEntity> result      = null;
            Uri uri = null;

            //0
            uri = new Uri("jdbc:///idx");
            try
            {
                queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            }
            catch (Exception e)
            {
                Assert.AreEqual(ErrorMessages.NotValidURI, e.Message);
            }
            //1
            uri         = new Uri("jdbc:///id/");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(0, result.Count());
            //2
            uri         = new Uri("jdbc:///id/?name=*");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(2, result.Count());
            //3
            uri         = new Uri("jdbc:///id/?name=exp1");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id);
            //4
            uri         = new Uri("jdbc:///id/?name=*&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(8, result.Count());
            //5
            uri         = new Uri("jdbc:///id/?name=exp2-1&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(0, result.Count());
            //6
            uri         = new Uri("jdbc:///id/?name=exp1-2&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(2, result.Count());
            //7
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=*");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(3, result.Count());
            //8
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=*&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(4, result.Count());
            //9
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(sig11.Id, result.FirstOrDefault().Id);
            //10
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(2, result.Count());
            //11
            uri         = new Uri("jdbc:///id/" + exp1.Id);
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id);
        }
Ejemplo n.º 3
0
        public void IdQueryTest()
        {
            JDBCEntity exp1   = new Experiment("exp1");
            JDBCEntity sig11  = new Signal("sig1");
            JDBCEntity exp11  = new Experiment("exp1-1");
            JDBCEntity exp12  = new Experiment("exp1-2");
            JDBCEntity sig121 = new Signal("sig1");
            JDBCEntity exp2   = new Experiment("exp2");
            JDBCEntity exp21  = new Experiment("exp1-2");
            JDBCEntity sig21  = new Signal("sig1");

            myCoreApi.AddOneToExperimentAsync(Guid.Empty, exp1).Wait();
            myCoreApi.AddOneToExperimentAsync(exp1.Id, sig11).Wait();
            myCoreApi.AddOneToExperimentAsync(exp1.Id, exp11).Wait();
            myCoreApi.AddOneToExperimentAsync(exp1.Id, exp12).Wait();
            myCoreApi.AddOneToExperimentAsync(exp12.Id, sig121).Wait();

            myCoreApi.AddOneToExperimentAsync(Guid.Empty, exp2).Wait();
            myCoreApi.AddOneToExperimentAsync(exp2.Id, exp21).Wait();
            myCoreApi.AddOneToExperimentAsync(exp2.Id, sig21).Wait();

            // exp1
            // ===sig1
            // ===exp1-1
            // ===exp1-2
            // ======sig1
            // exp2
            // ===exp2-1
            // ===sig1

            IDQueryPlugIn idQueryPlugIn = new IDQueryPlugIn(myCoreApi.CoreService);

            myCoreApi.AddQueryPlugin(idQueryPlugIn);
            IQueryPlugIn             queryPlugin = null;
            IEnumerable <JDBCEntity> result      = null;
            Uri uri = null;

            //0
            uri = new Uri("jdbc:///idx");
            try
            {
                queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            }
            catch (Exception e)
            {
                Assert.AreEqual(ErrorMessages.NotValidURIError, e.Message);
            }
            //1
            uri         = new Uri("jdbc:///id/");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(0, result.Count());
            //2
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=*");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(3, result.Count());
            //3
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=*&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(4, result.Count());
            //4
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(sig11.Id, result.FirstOrDefault().Id);
            //5
            uri         = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1&recursive=true");
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(2, result.Count());
            //6
            uri         = new Uri("jdbc:///id/" + exp1.Id);
            queryPlugin = myCoreApi.GetBestQueryPlugin(uri);
            Assert.AreEqual(idQueryPlugIn, queryPlugin);
            result = myCoreApi.FindNodeByUriAsync(uri).Result;
            Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id);
        }