Esempio n. 1
0
        /// <summary>
        /// Esegue la coda di eventi. Attenzione! eccezioni non gestite interrompono la coda di esecuzione
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="evt"></param>
        /// <param name="value"></param>
        internal void RunPreEventHandlerQueue(BusinessSlot.EObjectEvent evt, DataObjectBase value, ref bool cancel)
        {
            if (value == null)
            {
                return;
            }


            //Esegue coda per tipo oggetto
            //TIP: avendo registrato l'evento con <T> viene utilizzato il riferimento interno della classe non proxy
            //quindi la dobbiamo riprendere
            this.PreEventQ.Run(evt, value.mClassSchema.OriginalType, value, ref cancel);

            //Esegue la coda globale (catchall)
            this.PreEventQ.Run(evt, typeof(object), value, ref cancel);
        }
Esempio n. 2
0
 /// <summary>
 /// Registra evento per tipo su coda
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="evt"></param>
 /// <param name="func"></param>
 public void RegisterPostEventHandler <T>(BusinessSlot.EObjectEvent evt, BusinessSlot.BDEventPostHandler func)
     where T : DataObject <T>
 {
     //Aggiunge alla coda Post
     this.PostEventQ.Add(evt, typeof(T), func);
 }
Esempio n. 3
0
 /// <summary>
 /// Registra evento per qualunque tipo
 /// </summary>
 /// <param name="evt"></param>
 /// <param name="func"></param>
 /// <param name="inputData"></param>
 /// <param name="outputData"></param>
 public void RegisterPostEventHandlerForAny(BusinessSlot.EObjectEvent evt, BusinessSlot.BDEventPostHandler func)
 {
     //Aggiunge alla coda Post con tipo: oggetto
     this.PostEventQ.Add(evt, typeof(object), func);
 }