public override sealed void OnRemove(Net.Vpc.Upa.Callbacks.RemoveEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Persistence.EntityExecutionContext executionContext = @event.GetContext(); string name = @event.GetTrigger().GetName(); System.Collections.Generic.ICollection <Net.Vpc.Upa.Key> collection = (System.Collections.Generic.ICollection <Net.Vpc.Upa.Key>)executionContext.GetObject <T>(name + ":toDelete"); if (collection == null) { return; } executionContext.Remove(name + ":toDelete"); if (!(collection.Count == 0)) { AfterDeleteHelper(@event, CreateInCollection(@event.GetEntity(), collection)); } }
public override sealed void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { // validate old references Net.Vpc.Upa.Persistence.EntityExecutionContext executioncontext = @event.GetContext(); string name = @event.GetTrigger().GetName(); System.Collections.Generic.ICollection <Net.Vpc.Upa.Key> collection = executioncontext.GetObject <T>(name + ":toUpdate"); if (collection == null) { return; } executioncontext.Remove(name + ":toUpdate"); Net.Vpc.Upa.Expressions.IdCollectionExpression inColl = null; if (!(collection.Count == 0)) { inColl = CreateInCollection(@event.GetEntity(), collection); AfterUpdateHelper(@event, inColl); } // validate old references if (AcceptUpdateTableOlderValuesHelper(@event)) { Net.Vpc.Upa.Expressions.Expression newUpdates = null; if (inColl != null) { Net.Vpc.Upa.Expressions.Expression translated = TranslateExpression(@event.GetFilterExpression()); if (translated != null) { newUpdates = new Net.Vpc.Upa.Expressions.And(new Net.Vpc.Upa.Expressions.Not(inColl), translated); } else { newUpdates = new Net.Vpc.Upa.Expressions.Not(inColl); } } else { newUpdates = TranslateExpression(@event.GetFilterExpression()); } AfterUpdateHelper(@event, newUpdates); } }