Ejemplo n.º 1
0
        internal CommandDispatcher(
            ILogFactory logFactory,
            string boundedContext,
            CommandInterceptorsQueue commandInterceptorsProcessor = null,
            long failedCommandRetryDelay = 60000)
        {
            _log = logFactory.CreateLog(this);
            _commandInterceptorsProcessor = commandInterceptorsProcessor ?? new CommandInterceptorsQueue();
            _failedCommandRetryDelay      = failedCommandRetryDelay;
            _boundedContext = boundedContext;

            var taskMethods       = typeof(Task <CommandHandlingResult>).GetMethods(BindingFlags.Public | BindingFlags.Instance);
            var awaiterResultType = typeof(TaskAwaiter <CommandHandlingResult>);

            _getAwaiterInfo = taskMethods.First(m => m.Name == "GetAwaiter" && m.ReturnType == awaiterResultType);
        }
Ejemplo n.º 2
0
        public CqrsEngine(
            ILog log,
            IDependencyResolver dependencyResolver,
            IMessagingEngine messagingEngine,
            IEndpointProvider endpointProvider,
            bool createMissingEndpoints,
            params IRegistration[] registrations)
        {
            _log = log;
            _createMissingEndpoints = createMissingEndpoints;
            DependencyResolver      = dependencyResolver;
            EndpointResolver        = new DefaultEndpointResolver();
            MessagingEngine         = messagingEngine;
            _endpointProvider       = endpointProvider;
            Contexts                 = new List <Context>();
            DefaultRouteMap          = new RouteMap("default");
            CommandInterceptorsQueue = new CommandInterceptorsQueue();
            EventInterceptorsQueue   = new EventInterceptorsQueue();

            InitRegistrations(registrations);
        }