/// <summary> /// If the module controller is stopping and messages are still enqueue, we ignore them. /// </summary> /// <param name="sender">Sender is ignored.</param> /// <param name="e">Used to prevent the message from being enqueued.</param> private void OnBeforeEnqueueMessage(object sender, EnqueueMessageEventArgs e) { if (this.controllerIsStopping) { e.Cancel = true; } }
/// <summary> /// Fires the <see cref="BeforeEnqueueMessage"/> event. /// </summary> /// <param name="message">The message that wants to be enqueued.</param> /// <param name="cancel"><c>true</c> to cancel enqueuing of message (message will not be enqueued).</param> private void OnBeforeEnqueueMessage(object message, out bool cancel) { if (this.BeforeEnqueueMessage != null) { EnqueueMessageEventArgs eventArgs = new EnqueueMessageEventArgs(this.controlledModule, message); this.BeforeEnqueueMessage(this, eventArgs); cancel = eventArgs.Cancel; } else { cancel = false; // do not cancel if there is no listener. } }