/// <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); }
/// <summary> /// Specifiy a message handler type to be executed before the others. Additional /// handlers can be specified calling by calling Next<T>() 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); }