public void Add(IDBTableTrigger trigger) { AllTriggers.Add(trigger); if(HasPosition(DBTriggerPosition.BeforeSelect, trigger)) AddPosition(ref BeforeSelect, trigger); if(HasPosition(DBTriggerPosition.AfterSelect, trigger)) AddPosition(ref AfterSelect, trigger); if(HasPosition(DBTriggerPosition.BeforeInsert, trigger)) AddPosition(ref BeforeInsert, trigger); if(HasPosition(DBTriggerPosition.AfterInsert, trigger)) AddPosition(ref AfterInsert, trigger); if(HasPosition(DBTriggerPosition.BeforeUpdate, trigger)) AddPosition(ref BeforeUpdate, trigger); if(HasPosition(DBTriggerPosition.AfterUpdate, trigger)) AddPosition(ref AfterUpdate, trigger); if(HasPosition(DBTriggerPosition.BeforeDelete, trigger)) AddPosition(ref BeforeDelete, trigger); if(HasPosition(DBTriggerPosition.AfterDelete, trigger)) AddPosition(ref AfterDelete, trigger); }
private bool HasPosition(DBTriggerPosition pos, IDBTableTrigger trigger) { return ((pos & trigger.Actions) == pos); }
private void AddPosition(ref SortedList<decimal, IDBTableTrigger> position, IDBTableTrigger trigger) { if(position == null) position = new SortedList<decimal, IDBTableTrigger>(); position.Add(trigger.Position, trigger); }