public virtual void ManageUpdateTriggerAfter(string className, NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo oldNnoi, object newObject, NeoDatis.Odb.OID oid) { if (HasUpdateTriggersFor(className)) { NeoDatis.Odb.Core.Trigger.UpdateTrigger trigger = null; System.Collections.IEnumerator iterator = GetListOfUpdateTriggersFor(className).GetEnumerator (); while (iterator.MoveNext()) { trigger = (NeoDatis.Odb.Core.Trigger.UpdateTrigger)iterator.Current; if (trigger.GetOdb() == null) { trigger.SetOdb(new NeoDatis.Odb.Impl.Main.ODBForTrigger(storageEngine)); } try { trigger.AfterUpdate(new NeoDatis.Odb.Impl.Core.Server.Trigger.DefaultObjectRepresentation (oldNnoi), Transform(newObject), oid); } catch (System.Exception e) { NeoDatis.Odb.Core.IError warning = NeoDatis.Odb.Core.NeoDatisError.AfterUpdateTriggerHasThrownException .AddParameter(trigger.GetType().FullName).AddParameter(NeoDatis.Tool.Wrappers.OdbString .ExceptionToString(e, false)); if (NeoDatis.Odb.OdbConfiguration.DisplayWarnings()) { NeoDatis.Tool.DLogger.Info(warning); } } } } }
public virtual void AddUpdateTrigger(System.Type clazz, NeoDatis.Odb.Core.Trigger.UpdateTrigger trigger) { if (trigger is NeoDatis.Odb.Core.Server.Trigger.ServerUpdateTrigger) { throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.CanNotAssociateServerTriggerToLocalOrClientOdb .AddParameter(trigger.GetType().FullName)); } storageEngine.AddUpdateTriggerFor(clazz.FullName, trigger); }