Пример #1
0
        public void RegisterEvent <T>() where T : class, IEvent
        {
            var client       = _rabbitMqServer.GetRabbitMQClient();
            var eventHandler = _container.GetInstance <IEventHandler <T> >();

            client.Consume(QueueNamingFactory.GetEventQueue <T>(), msg => eventHandler.Handle(msg.GetBody <T>()));
        }
Пример #2
0
        public void RegisterCommand <T>() where T : class, ICommand
        {
            var client         = _rabbitMqServer.GetRabbitMQClient();
            var commandHandler = _container.GetInstance <ICommandHandler <T> >();

            client.Consume(QueueNamingFactory.GetCommandQueue <T>(), msg => commandHandler.Handle(msg.GetBody <T>()));
        }
Пример #3
0
        public static Message <T> CreateFromCommand <T>(T command) where T : class, ICommand
        {
            var msg = Message <T> .Create(command);

            msg.Queue = QueueNamingFactory.GetCommandQueue <T>();
            return(msg);
        }
Пример #4
0
        public static Message <T> CreateFromEvent <T>(T _event) where T : class, IEvent
        {
            var msg = Message <T> .Create(_event);

            msg.Queue = QueueNamingFactory.GetEventQueue <T>();
            return(msg);
        }
Пример #5
0
        public static Message <TCommand> CreateFromCommandReturns <TCommand, TResponse>(TCommand command)
            where TCommand : class, ICommandReturns <TResponse>
            where TResponse : class, ICommandResponse
        {
            var msg = Message <TCommand> .Create(command);

            msg.Queue         = QueueNamingFactory.GetCommandQueue <TCommand>();
            msg.CallBackQueue = QueueNamingFactory.GetCallBackQueue <TCommand, TResponse>();
            return(msg);
        }
Пример #6
0
        public void RegisterCommandResponse <TCommand, TResponse>() where TCommand : class, ICommand, ICommandReturns <TResponse> where TResponse : class, ICommandResponse
        {
            var client         = _rabbitMqServer.GetRabbitMQClient();
            var commandHandler = _container.GetInstance <ICommandHandlerResponse <TCommand, TResponse> >();

            client.ConsumeAndRespond(QueueNamingFactory.GetCommandQueue <TCommand>(), msg =>
            {
                var response = commandHandler.Handle(msg.GetBody <TCommand>());
                return(MessageFactory.CreateResponse(msg, response));
            });
        }