Example #1
0
 private void Dialog_MessageDispatching(Object sender, MessageDispatchingEventArgs e)
 {
     if (this.Filter.Intercept(e.Message) == true)
     {
         try
         {
             this.Callback(new MessageReceivedEventArgs <TMessage>(( TMessage )e.Message, e.DialogProvider));
         }finally
         {
             e.Cancel = true;
         }
     }
 }
Example #2
0
        protected void Dispatch <TMessage>(IMessage message, Action <TMessage> callback)
            where TMessage : class, IMessage
        {
            TMessage?dispatchee = message as TMessage;

            if (dispatchee is not null)
            {
                MessageDispatchingEventArgs eventArgs = new MessageDispatchingEventArgs(dispatchee, this.DialogProvider);

                this.MessageDispatching?.Invoke(this, eventArgs);

                if (eventArgs.Cancel == false)
                {
                    callback(dispatchee);
                }
            }
        }