Example #1
0
        /// <summary>
        /// Specifiy a message module type to be exeucted for other modules.
        /// </summary>
        /// <param name="additionalOrdering">Configuration action to specifiy additional module types
        /// to be executed in given order.</param>
        /// <typeparam name="TMessageModule">Type of the message module.</typeparam>
        /// <returns>Module configuration instance.</returns>
        public ModuleConfig FirstExecuteModule <TMessageModule>(Action <ExecutionOrdering> additionalOrdering)
        {
            _moduleExecutionOrdering.Add(typeof(TMessageModule));

            var nextModules = new ExecutionOrdering(_moduleExecutionOrdering);

            additionalOrdering(nextModules);

            return(this);
        }
Example #2
0
        /// <summary>
        /// Specifiy a message handler type to be executed before the others. Additional
        /// handlers can be specified calling by calling Next&lt;T&gt;() on the action
        /// argument.
        /// </summary>
        /// <typeparam name="TMessageHandler">Type of the message handler.</typeparam>
        /// <param name="additionalOrdering">Configuration action to specify addtional handlers.</param>
        /// <returns>Module configuration instance.</returns>
        public ModuleConfig FirstExecute <TMessageHandler>(Action <ExecutionOrdering> additionalOrdering)
        {
            _handlerExecutionOrdering.Add(typeof(TMessageHandler));

            var nextHandlers = new ExecutionOrdering(_handlerExecutionOrdering);

            additionalOrdering(nextHandlers);

            return(this);
        }