Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MessageProcessingRpcReceive{TReceivedMessage}" /> class.
        /// </summary>
        /// <param name="configurationReceive">The configuration receive.</param>
        /// <param name="receiveMessagesFactory">The receive messages factory.</param>
        /// <param name="messageContextFactory">The message context factory.</param>
        /// <param name="messageHandler">The message handler.</param>
        /// <param name="rpcContextFactory">The RPC context factory.</param>
        /// <param name="commitMessage">The commit message.</param>
        public MessageProcessingRpcReceive(
            QueueConsumerConfiguration configurationReceive,
            IReceiveMessagesFactory receiveMessagesFactory,
            IMessageContextFactory messageContextFactory,
            IMessageHandlerRegistration messageHandler,
            IRpcContextFactory rpcContextFactory,
            ICommitMessage commitMessage)
        {
            Guard.NotNull(() => configurationReceive, configurationReceive);
            Guard.NotNull(() => receiveMessagesFactory, receiveMessagesFactory);
            Guard.NotNull(() => messageContextFactory, messageContextFactory);
            Guard.NotNull(() => messageHandler, messageHandler);
            Guard.NotNull(() => rpcContextFactory, rpcContextFactory);
            Guard.NotNull(() => commitMessage, commitMessage);

            _configurationReceive   = configurationReceive;
            _receiveMessagesFactory = receiveMessagesFactory;
            _messageContextFactory  = messageContextFactory;
            _messageHandler         = messageHandler;
            _rpcContextFactory      = rpcContextFactory;
            _commitMessage          = commitMessage;

            void Action(IReceivedMessage <TReceivedMessage> message, IWorkerNotification worker)
            {
            }

            messageHandler.Set((Action <IReceivedMessage <TReceivedMessage>, IWorkerNotification>)Action);
        }
Пример #2
0
 /// <summary>
 /// Registers the specified message action.
 /// </summary>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <param name="messageAction">The message action.</param>
 public void Register <TMessage>(Action <IReceivedMessage <TMessage>, IWorkerNotification> messageAction)
     where TMessage : class
 {
     Guard.NotNull(() => messageAction, messageAction);
     _messageHandlerRegistration.Set(messageAction);
 }