/// <summary> /// Factory method /// </summary> /// <returns>command dispatcher instance</returns> /// <param name="configurationAction">configure here</param> /// <param name="loggingFactory">Logger</param> public static CommandDispatcher Create(Func <DispatcherConfiguration, DispatcherConfiguration> configurationAction, ILogger loggingFactory) { var config = new DispatcherConfiguration(); configurationAction(config); return(new CommandDispatcher(config, loggingFactory)); }
/// <summary> /// Initializes a new instance of the <see cref="EventDispatcher"/> class. /// </summary> /// <param name="configuration">dispatcher configuration</param> /// <param name="logger">logger</param> public EventDispatcher(DispatcherConfiguration configuration, ILogger logger) { _log = logger; if (configuration.ServiceLocator == null) { throw new ArgumentException("Unity Container is not registered for distributor."); } if (configuration.DispatcherEventHandlerRegistry == null) { throw new ArgumentException("Dispatcher Event Handler Registry is null in distributor."); } _registry = configuration.DispatcherEventHandlerRegistry; // order handlers _registry.InsureOrderOfHandlers(); }