Beispiel #1
0
        /// <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();
        }