예제 #1
0
        private static async Task <JMXSchema> GetSchemaInternalAsync(MdbContext mdb, string areaName, string objectName, int syncState)
        {
            string sortDirrect = syncState == 0 ? "" : "desc";
            string sql         = $@"
				select 
					ID
					,ObjectSchema
					,SyncState 
				from V_SysSchemas 
				where SchemaName = '{areaName}' 
					and (ObjectName = '{objectName}' or DbObjectName = '{objectName}') 
				and SyncState >= {syncState}
				order by SyncState {sortDirrect} limit 1"                ;

            using (var dr = await mdb.GetReaderAsync(sql))
            {
                if (!dr.Read())
                {
                    //object schema not found in database
                    throw new InvalidOperationException(string.Format(Properties.Strings.S031_MetaStack_Core_SysCat_SysCatManager_getSchema_2,
                                                                      $"{areaName}.{objectName}", syncState));
                }
                var schema = JMXSchema.Parse((string)dr["ObjectSchema"]);
                schema.ID        = Convert.ToInt32(dr["ID"]);
                schema.SyncState = (int)dr["SyncState"];
                return(schema);
            }
        }
예제 #2
0
        private void SpeedGetHashCodeTest()
        {
            using (MdbContext mdb = new MdbContext(_ci))
            {
                //string s1 = mdb.Execute<string>("SysCat.Get_TableSchema_xml",
                //	new MdbParameter("@table_name", "dbo.OrderDetails"));
                //_logger.Debug(s1);
                //_logger.Debug(JMXSchema.ParseXml(s1).ToString());
                //s1 = mdb.Execute<string>("SysCat.Get_TableSchema",
                //	new MdbParameter("@table_name", "dbo.Orders"));
                //_logger.Debug(s1);

                //_logger.Debug("Start speed test for SysCat.Get_TableSchema_xml");
                //for (int i = 0; i < 100; i++)
                //{
                //	s1 = mdb.Execute<string>("SysCat.Get_TableSchema_xml",
                //		new MdbParameter("@table_name", "dbo.OrderDetails"));
                //	var schema = JMXSchema.ParseXml(s1);
                //}
                //_logger.Debug("End speed test for SysCat.Get_TableSchema_xml");
                _logger.LogDebug("Start speed test for SysCat.Get_TableSchema");
                for (int i = 0; i < 100; i++)
                {
                    var s1 = mdb.Execute <string>("SysCat.Get_TableSchema",
                                                  new MdbParameter("@table_name", "dbo.OrderDetails"));
                    var schema = JMXSchema.Parse(s1);
                }
                _logger.LogDebug("End speed test for SysCat.Get_TableSchema");
            }
        }
예제 #3
0
        private void GetParameters(ActionInfo ai, DataPackage dp)
        {
            _connectionName = ai.GetContext()
                              .Services
                              .GetRequiredService <IConfiguration>()["appSettings:SysCatConnection"];

            if (dp.Read())
            {
                _schemaSource = JMXSchema.Parse((string)dp["ObjectName"]);
            }
        }
예제 #4
0
        static JMXSchema[] GetTestSchemas()
        {
            List <JMXSchema> l = new List <JMXSchema>();
            var rm             = Resources.TestSchemas.ResourceManager;

            foreach (JMXObjectName item in getTestNames())
            {
                l.Add(JMXSchema.Parse(rm.GetObject(item.ObjectName) as string));
            }
            return(l.ToArray());
        }
예제 #5
0
        private static JMXSchema[] GetTestSchemas()
        {
            List <JMXSchema> l = new List <JMXSchema>();
            var rm             = Resources.TestSchemas.ResourceManager;

            foreach (JMXObjectName item in GetTestNames())
            {
                var path = $@"..\..\..\orm\Resources\TestSchemas\{item.ObjectName}.json";
                l.Add(JMXSchema.Parse(File.ReadAllText(path)));
            }
            return(l.ToArray());
        }
예제 #6
0
        public override async Task <JMXSchema> GetObjectSchemaAsync(string objectName)
        {
            var    mdb = Factory.GetMdbContext();
            string s   = await mdb.ExecuteAsync <string>(
                (await SqlServerHelper.IsSql17(mdb))?SqlServer.GetTableSchema : SqlServer.GetTableSchema_12,
                new MdbParameter("@table_name", objectName));

            if (s != null)
            {
                return(JMXSchema.Parse(s));
            }
            return(null);
        }
예제 #7
0
        private void SaveTestData()
        {
            //foreach (var s in GetTestSchemas())
            //	System.IO.File.WriteAllText($"d:\\testData\\{s.ObjectName}.json", s.ToString());
            //foreach (var f in new DirectoryInfo("d:\\testData").GetFiles("*.json", SearchOption.AllDirectories))
            //{
            //	string s = File.ReadAllText(f.FullName);
            //	File.WriteAllText(f.FullName, s, Encoding.UTF8);
            //}
            var s = CreateTestSchema();

            _logger.LogDebug(s.ToString());
            var s1 = JMXSchema.Parse(s.ToString());

            Assert.Equal(s.ToString(), s1.ToString());
            _logger.LogDebug(s1.ToString());
        }
예제 #8
0
파일: ORMTest.cs 프로젝트: S031/MetaStack
        private void SerializeTest()
        {
            using (FileLog _logger = new FileLog("ORMSchemaTest", new FileLogSettings()
            {
                DateFolderMask = "yyyy-MM-dd"
            }))
            {
                var str = _sourceJsonString;
                _logger.Debug($"Start perfomance parse string test");
                int        i;
                DateTime   t = DateTime.Now;
                JsonObject j = null;
                for (i = 0; i < 1_000; i++)
                {
                    j = (JsonObject) new S031.MetaStack.Json.JsonReader(str).Read();
                }
                _logger.Debug($"Finish perfomance parse string test. Time={(DateTime.Now - t).Milliseconds} ms, loop count={i}");

                _logger.Debug($"Start perfomance parse string schema test");
                t = DateTime.Now;
                for (i = 0; i < 1_000; i++)
                {
                    var schema = JMXSchema.Parse(str);
                }
                _logger.Debug($"Finish perfomance parse string schema test. Time={(DateTime.Now - t).Milliseconds} ms, loop count={i}");

                //str = JSONExtensions.SerializeObject(JMXSchema.Parse(str));
                //_logger.Debug($"Start perfomance parse string schema MessagePack test");
                //t = DateTime.Now;
                //for (i = 0; i < 1_000; i++)
                //{
                //	var schema = JSONExtensions.DeserializeObject<JMXSchema>(str);
                //}
                //_logger.Debug($"Finish perfomance parse string schema MessagePack test. Time={(DateTime.Now - t).Milliseconds} ms, loop count={i}");
                var s = JMXSchema.Parse(str);
                str = s.ToString();
                var str2 = JMXSchema.Parse(str).ToString();
                Assert.Equal(str, str2);
                _logger.Debug(JMXSchema.Parse(str));
                _logger.Debug(JMXSchema.Parse(str2));
            }
        }
예제 #9
0
 public void saveTestData()
 {
     //foreach (var s in GetTestSchemas())
     //	System.IO.File.WriteAllText($"d:\\testData\\{s.ObjectName}.json", s.ToString());
     //foreach (var f in new DirectoryInfo("d:\\testData").GetFiles("*.json", SearchOption.AllDirectories))
     //{
     //	string s = File.ReadAllText(f.FullName);
     //	File.WriteAllText(f.FullName, s, Encoding.UTF8);
     //}
     using (FileLogger _logger = new FileLogger("ORMDBTest", new FileLogSettings()
     {
         DateFolderMask = "yyyy-MM-dd"
     }))
     {
         var s = creaateTestSchema();
         _logger.Debug(s.ToString());
         var s1 = JMXSchema.Parse(s.ToString());
         Assert.AreEqual(s.ToString(), s1.ToString());
         _logger.Debug(s1.ToString());
     }
 }
예제 #10
0
 public static JMXSchema GetObjectSchema(string objectName)
 {
     if (!_schemaCache.TryGetValue(objectName, out JMXSchema schema))
     {
         using (var p = new DataPackage(
                    new string[] { "ObjectName" },
                    new object[] { objectName }))
             using (var r = ClientGate.Execute("Sys.GetSchema", p))
             {
                 r.GoDataTop();
                 if (r.Read())
                 {
                     schema = JMXSchema.Parse((string)r["ObjectSchema"]);
                     _schemaCache.TryAdd(objectName, schema);
                 }
                 else
                 {
                     return(null);
                 }
             }
     }
     return(schema);
 }
예제 #11
0
        public void speedGetHashCodeTest()
        {
            using (FileLogger _logger = new FileLogger("ORMDBTest", new FileLogSettings()
            {
                DateFolderMask = "yyyy-MM-dd"
            }))
            {
                using (MdbContext mdb = new MdbContext(_cn))
                {
                    string s1 = mdb.Execute <string>("SysCat.Get_TableSchema_xml",
                                                     new MdbParameter("@table_name", "dbo.OrderDetails"));
                    _logger.Debug(s1);
                    _logger.Debug(JMXSchema.ParseXml(s1).ToString());
                    s1 = mdb.Execute <string>("SysCat.Get_TableSchema",
                                              new MdbParameter("@table_name", "dbo.Orders"));
                    _logger.Debug(s1);

                    _logger.Debug("Start speed test for SysCat.Get_TableSchema_xml");
                    for (int i = 0; i < 100; i++)
                    {
                        s1 = mdb.Execute <string>("SysCat.Get_TableSchema_xml",
                                                  new MdbParameter("@table_name", "dbo.OrderDetails"));
                        var schema = JMXSchema.ParseXml(s1);
                    }
                    _logger.Debug("End speed test for SysCat.Get_TableSchema_xml");
                    _logger.Debug("Start speed test for SysCat.Get_TableSchema");
                    for (int i = 0; i < 100; i++)
                    {
                        s1 = mdb.Execute <string>("SysCat.Get_TableSchema",
                                                  new MdbParameter("@table_name", "dbo.OrderDetails"));
                        var schema = JMXSchema.Parse(s1);
                    }
                    _logger.Debug("End speed test for SysCat.Get_TableSchema");
                }
            }
        }