Beispiel #1
0
        public void JMXObjectTest()
        {
            JMXSchemaProviderFactory.RegisterProvider <JMXSchemaProviderMemory>();
            IJMXSchemaProvider sp = JMXSchemaProviderFactory.GetProvider <JMXSchemaProviderMemory>();

            JMXSchemaProviderFactory.SetDefault(sp);
            using (FileLog _logger = new FileLog("ORMSchemaTest", new FileLogSettings()
            {
                DateFolderMask = "yyyy-MM-dd"
            }))
            {
                sp.SaveSchema(creaateTestSchema());

                JMXObject o = new JMXObject("SysCat.SysSchema")
                {
                    ["ID"] = 1
                };
                _logger.Debug(o.ToString());
                string s = o.ToString();
                o.ParseJson(s, null);
                _logger.Debug(o.ToString());
                o = JMXObject.CreateFrom(o.ToString());
                _logger.Debug(o.ToString());
            }
        }
Beispiel #2
0
        public static void ObjectEdit(JMXObject objSource, bool isNew, IObjectHost host,
                                      string actionID, Action <IObjectEditor> RefreshHostDelegate, IObjectEditor editor)
        {
            IObjectEditor oe;

            if (editor == null)
            {
                editor = new MultiEdit(objSource.ObjectName);
            }
            oe            = editor;
            oe.IsNew      = isNew;
            oe.EditObject = objSource;

            if (oe.EditObject != null)
            {
                oe.Owner      = host == null ? null : (host as Control).FindForm();
                oe.ObjectHost = host;
                oe.DataSaved += (sender, e) =>
                {
                    IObjectEditor _oe = (sender as IObjectEditor);
                    if (_oe != null && _oe.TrueSaved && _oe.RefreshHostOnSaved && RefreshHostDelegate != null)
                    {
                        RefreshHostDelegate(oe);
                    }
                };
                oe.ContinuousEditing = true;

                Form form = (oe as Form);
                if (form != null)
                {
                    form.FormClosed += (sender, e) =>
                    {
                        IObjectEditor _oe = (sender as IObjectEditor);
                        if (_oe != null && _oe.TrueSaved && _oe.RefreshHostOnExit && RefreshHostDelegate != null)
                        {
                            RefreshHostDelegate(oe);
                        }
                        Control _host = (_oe.ObjectHost as Control);
                        if (_host != null)
                        {
                            _host.Focus();
                        }
                    }
                }
                ;

                if (oe.Owner != null && !oe.Owner.Modal)
                {
                    form.Show();
                }
                else
                {
                    form.ShowDialog();
                    form.Dispose();
                }
            }
        }
    }
Beispiel #3
0
        public async virtual Task DeleteAsync(JMXObjectName objectName, long id)
        {
            JMXObject jo = await ReadAsync(objectName, id);

            if (jo == null)
            {
                throw new InvalidOperationException(Properties.Strings.S031_MetaStack_Core_ORM_JMXProvider_ObjectNotFound
                                                    .ToFormat(objectName, id));
            }
            await DeleteAsync(jo);
        }
Beispiel #4
0
 private string GetReadStatement(JMXObject o)
 {
     using (var writer = Factory.CreateSQLStatementWriter())
     {
         var schema = o.Schema;
         var sm     = new SchemaManager(schema);
         var id     = sm.GetIdentityAttribute();
         if (id == null)
         {
             //!!! to resource
             throw new InvalidOperationException("For read operations your mast have one or more identifier columns, aka identity or unique key field");
         }
         writer
         .WriteSelectStatement(schema, new JMXCondition(JMXConditionTypes.Where, ""))
         .WriteEqualsColumnStatement(schema, id, $"@{id.FieldName}", "");
         return(writer.ToString());
     }
 }
Beispiel #5
0
        public override async Task <JMXObject> ReadAsync(JMXObjectName objectName, long id)
        {
            JMXObject o = new JMXObject(objectName, Factory);

            if (!_statementsCache.TryGetValue(objectName, out string sql))
            {
                sql = GetReadStatement(o);
                _statementsCache.TryAdd(objectName, sql);
            }

            var mdb = Factory.GetMdbContext();
            var drs = await mdb.GetReadersAsync(sql);

            for (int i = 0; i < drs.Length; i++)
            {
                var dr = drs[i];
                dr.Dispose();
            }
            return(o);
        }
Beispiel #6
0
 public static void ObjectEdit(JMXObject objSource, bool isNew)
 {
     ObjectEdit(objSource, isNew, null, null, null, null);
 }
Beispiel #7
0
 public static void ObjectEdit(JMXObject objSource, bool isNew,
                               IObjectHost host, IObjectEditor editor, Action <IObjectEditor> RefreshHostDelegate)
 {
     ObjectEdit(objSource, isNew, host, null, RefreshHostDelegate, editor);
 }
Beispiel #8
0
 public static void ObjectEdit(JMXObject objSource, bool isNew, IObjectHost host, IObjectEditor editor)
 {
     ObjectEdit(objSource, isNew, host, null, null, editor);
 }
Beispiel #9
0
 public virtual Task <long> SaveAsync(JMXObject jmxObject, bool isNew)
 {
     throw new NotImplementedException();
 }
Beispiel #10
0
 public virtual long Save(JMXObject jmxObject, bool isNew)
 {
     throw new NotImplementedException();
 }
Beispiel #11
0
 public virtual Task DeleteAsync(JMXObject jmxObject)
 {
     throw new NotImplementedException();
 }
Beispiel #12
0
 public virtual void Delete(JMXObject jmxObject)
 => Delete(jmxObject.ObjectName, jmxObject.ID);
Beispiel #13
0
        public void SerializeTest()
        {
            using (FileLog _logger = new FileLog("ORMSchemaTest", new FileLogSettings()
            {
                DateFolderMask = "yyyy-MM-dd"
            }))
            {
                JMXAttribute a = new JMXAttribute("ID")
                {
                    DataType   = MdbType.@int,
                    IsNullable = false
                };
                string sa = a.ToString();
                //_logger.Debug(sa);
                a = JsonConvert.DeserializeObject <JMXAttribute>(sa);
                //_logger.Debug(a.ToString());
                Assert.AreEqual(sa, a.ToString());
                JMXPrimaryKey pk  = new JMXPrimaryKey("PK_SomeObjects", "SomeAtt", "NextAtt");
                string        spk = pk.ToString();
                //_logger.Debug(spk);
                pk = JsonConvert.DeserializeObject <JMXPrimaryKey>(spk);
                Assert.AreEqual(spk, pk.ToString());
                JMXSchema s = new JMXSchema("SysSchemas")
                {
                    DbObjectName = new JMXObjectName("SysCat", "SysSchemas")
                };
                s.Attributes.Add(a);
                s.PrimaryKey = pk;
                s.Indexes.Add(new JMXIndex("IE1_SysSchemas", "ID"));
                var fk = new JMXForeignKey("FK1")
                {
                    RefObjectName   = "SysCat.SysArea",
                    RefDbObjectName = new JMXObjectName("SysCat", "SysAreas")
                };
                fk.AddKeyMember("AreaID");
                fk.AddRefKeyMember("ID");
                s.ForeignKeys.Add(fk);
                string ss = s.ToString();
                _logger.Debug(ss);
                s = JsonConvert.DeserializeObject <JMXSchema>(ss);
                Assert.AreEqual(ss, s.ToString());
                _logger.Debug("Start speed test fo JMXObject parse from json string");


                JMXSchemaProviderFactory.RegisterProvider <JMXSchemaProviderMemory>();
                JMXSchemaProviderFactory.SetDefault(JMXSchemaProviderFactory.GetProvider <JMXSchemaProviderMemory>());
                JMXSchemaProviderFactory.Default.SaveSchema(creaateTestSchema());
                JMXObject o = new JMXObject("SysCat.SysSchema");
                for (int i = 0; i < 1000; i++)
                {
                    o.ParseJson(ss, null);
                }
                _logger.Debug("Finish speed test");
                _logger.Debug(o.ToString());
                _logger.Debug("Start speed test fo JMXSchema serialize to json string");
                for (int i = 0; i < 1000; i++)
                {
                    ss = JsonConvert.SerializeObject(s);
                }
                _logger.Debug("Finish speed test");
                _logger.Debug("Start speed test fo JMXSchema ToString method to json string");
                for (int i = 0; i < 1000; i++)
                {
                    ss = s.ToString();
                }
                _logger.Debug("Finish speed test");
                _logger.Debug("Start speed test fo JMXSchema parse from json string");
                for (int i = 0; i < 1000; i++)
                {
                    s = JsonConvert.DeserializeObject <JMXSchema>(ss);
                }
                _logger.Debug("Finish speed test");

                //JMXObject o = new JMXObject(JObject.Parse(ss));
                //_logger.Debug((o as JObject).ToString());
                //JsonSerializer serializer = new JsonSerializer();
                //JMXObject o = (JMXObject)serializer.Deserialize(new JTokenReader(JObject.Parse(ss)), typeof(JMXObject));
                //JMXObject o = new JMXObject("Test");
            }
        }
Beispiel #14
0
 public void Delete(JMXObject jmxObject)
 {
     throw new NotImplementedException();
 }
Beispiel #15
0
 public ActionEventArgs(JMXObject jObject)
 {
     ObjSource = jObject;
 }