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()); } }
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(); } } } }
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); }
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()); } }
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); }
public static void ObjectEdit(JMXObject objSource, bool isNew) { ObjectEdit(objSource, isNew, null, null, null, null); }
public static void ObjectEdit(JMXObject objSource, bool isNew, IObjectHost host, IObjectEditor editor, Action <IObjectEditor> RefreshHostDelegate) { ObjectEdit(objSource, isNew, host, null, RefreshHostDelegate, editor); }
public static void ObjectEdit(JMXObject objSource, bool isNew, IObjectHost host, IObjectEditor editor) { ObjectEdit(objSource, isNew, host, null, null, editor); }
public virtual Task <long> SaveAsync(JMXObject jmxObject, bool isNew) { throw new NotImplementedException(); }
public virtual long Save(JMXObject jmxObject, bool isNew) { throw new NotImplementedException(); }
public virtual Task DeleteAsync(JMXObject jmxObject) { throw new NotImplementedException(); }
public virtual void Delete(JMXObject jmxObject) => Delete(jmxObject.ObjectName, jmxObject.ID);
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"); } }
public void Delete(JMXObject jmxObject) { throw new NotImplementedException(); }
public ActionEventArgs(JMXObject jObject) { ObjSource = jObject; }