コード例 #1
0
        public void ProcessReceivedMessageInputValidMessageAssertValid()
        {
            var jsonDataContractSerializer = new JsonDataContractSerializer();

            var messageFake = new MessageFake {
                CreatedAt = DateTime.Now.Date
            };
            var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer);

            var inputGateway = AgentGatewayFactory.CreateInputGateway <IMessage>(_receiverEndPoint.Object, 5);

            var eventargs = new EventReceiverEndPointHandlerArgs
            {
                Message = Encoding.UTF8.GetBytes(jsonDataContractSerializer.Serialize(messageBus))
            };


            _receiverEndPoint.Setup(r => r.Start()).Raises(r => r.OnReceivedMessage += null,
                                                           new object[] { null, eventargs });

            IMessage messageReceived = null;

            inputGateway.OnMessage += (sender, args) => messageReceived = args.Message;


            inputGateway.Start();

            Assert.AreEqual(messageFake.CreatedAt, ((IMessageFake)messageReceived).CreatedAt);
        }
コード例 #2
0
ファイル: MessageModule.cs プロジェクト: jhonner72/plat
        protected override void Load(ContainerBuilder builder)
        {
            var connectionString = ConfigurationManager.ConnectionStrings["rabbitMQ"].ConnectionString;

            //message bus
            var messageBus = MessageBusFactory.CreateBus(connectionString);

            builder
            .RegisterInstance(messageBus)
            .As <IAdvancedBus>();

            //queue consumers

            builder.RegisterType <CarRequestMessageProcessorFactory>()
            .As <IMessageProcessorFactory <RecogniseBatchCourtesyAmountRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <RecogniseBatchCourtesyAmountRequest> >()
            .As <IQueueConsumer <RecogniseBatchCourtesyAmountRequest> >()
            .SingleInstance();

            //exchange publishers

            builder.RegisterType <ExchangePublisher <RecogniseBatchCourtesyAmountResponse> >()
            .As <IExchangePublisher <RecogniseCourtesyAmountResponse> >();
        }
コード例 #3
0
        public void ProcessReceivedMessageInputValidMessageAssertValid()
        {
            var jsonDataContractSerializer = new JsonDataContractSerializer();

            var messageFake = new MessageFake {
                CreatedAt = DateTime.Now.Date
            };
            var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer);

            var inputGateway = RouterGatewayFactory.CreateInputGateway(_receiverEndPoint.Object, 5);

            var eventargs = new EventReceiverEndPointHandlerArgs
            {
                Message = Encoding.UTF8.GetBytes(jsonDataContractSerializer.Serialize(messageBus))
            };


            _receiverEndPoint.Setup(r => r.Start()).Raises(r => r.OnReceivedMessage += null, new object[] { null, eventargs });

            MessageBus messageReceived = null;

            inputGateway.OnMessage += (sender, args) => messageReceived = jsonDataContractSerializer.Deserialize <MessageBus>(args.Message);


            inputGateway.Start();

            Assert.AreEqual(messageBus.Body, messageReceived.Body);
            Assert.AreEqual(messageBus.Header.Type, messageReceived.Header.Type);
            Assert.AreEqual(messageBus.Header.BodyType, messageReceived.Header.BodyType);
        }
        public void Setup()
        {
            //EneterTrace.DetailLevel = EneterTrace.EDetailLevel.Debug;
            //EneterTrace.TraceLog = new StreamWriter("d:/tracefile.txt");

            // Generate random number for the port.
            int aPort1 = RandomPortGenerator.GenerateInt();
            int aPort2 = aPort1 + 10;

            IMessagingSystemFactory anUnderlyingMessaging = new SharedMemoryMessagingSystemFactory();

            IDuplexInputChannel aMessageBusServiceInputChannel = anUnderlyingMessaging.CreateDuplexInputChannel("MyServicesAddress");
            IDuplexInputChannel aMessageBusClientInputChannel  = anUnderlyingMessaging.CreateDuplexInputChannel("MyClientsAddress");

            myMessageBus = new MessageBusFactory().CreateMessageBus();
            myMessageBus.AttachDuplexInputChannels(aMessageBusServiceInputChannel, aMessageBusClientInputChannel);

            MessagingSystemFactory = new MessageBusMessagingFactory("MyServicesAddress", "MyClientsAddress", anUnderlyingMessaging)
            {
                ConnectTimeout = TimeSpan.FromMilliseconds(3000)
            };

            // Address of the service in the message bus.
            ChannelId = "Service1_Address";
        }
コード例 #5
0
        public void Setup()
        {
            //EneterTrace.DetailLevel = EneterTrace.EDetailLevel.Debug;
            //EneterTrace.TraceLog = new StreamWriter("d:/tracefile.txt");

            // Generate random number for the port.
            int aPort1 = RandomPortGenerator.GenerateInt();
            int aPort2 = aPort1 + 10;

            IMessagingSystemFactory anUnderlyingMessaging = new TcpMessagingSystemFactory(new EasyProtocolFormatter());

            IDuplexInputChannel aMessageBusServiceInputChannel = anUnderlyingMessaging.CreateDuplexInputChannel("tcp://[::1]:" + aPort1 + "/");
            IDuplexInputChannel aMessageBusClientInputChannel  = anUnderlyingMessaging.CreateDuplexInputChannel("tcp://[::1]:" + aPort2 + "/");

            myMessageBus = new MessageBusFactory().CreateMessageBus();
            myMessageBus.AttachDuplexInputChannels(aMessageBusServiceInputChannel, aMessageBusClientInputChannel);

            MessagingSystemFactory = new MessageBusMessagingFactory("tcp://[::1]:" + aPort1 + "/", "tcp://[::1]:" + aPort2 + "/", anUnderlyingMessaging)
            {
                ConnectTimeout = TimeSpan.FromMilliseconds(3000)
            };

            // Address of the service in the message bus.
            ChannelId = "Service1_Address";

            CompareResponseReceiverId = false;
        }
コード例 #6
0
        protected override void Load(ContainerBuilder builder)
        {
            //Message Bus

            var connectionString = ConfigurationManager.ConnectionStrings["rabbitMQ"].ConnectionString;

            var messageBus = MessageBusFactory.CreateBus(connectionString);

            builder
            .RegisterInstance(messageBus)
            .As <IAdvancedBus>()
            .SingleInstance();

            //Queues

            //Exchanges

            builder
            .RegisterType <ExchangePublisher <JobRequest> >()
            .As <IExchangePublisher <JobRequest> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <Incident> >()
            .As <IExchangePublisher <Incident> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <string> >()
            .As <IExchangePublisher <string> >()
            .SingleInstance();

            //Misc
        }
コード例 #7
0
        static GetVouchersInformationBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            ResponseExchange = new ExchangePublisher <GetVouchersInformationResponse>(Bus);

            RequestQueue = Bus.QueueDeclare(ConfigurationHelper.GetPoolVouchersQueueName);
        }
コード例 #8
0
        static CorrectTransactionBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <CorrectBatchTransactionRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.CorrectTransactionResponseQueueName);
        }
コード例 #9
0
        static ValidateCodelineBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <ValidateBatchCodelineRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.ValidateCodelineResponseQueueName);
        }
コード例 #10
0
        static CreateAdjustmentLettersBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <CreateBatchAdjustmentLettersRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.ResponseQueueName);
        }
コード例 #11
0
ファイル: AutoReadCarBus.cs プロジェクト: jhonner72/plat
        static AutoReadCarBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            InboundExchange = new ExchangePublisher <RecogniseBatchCourtesyAmountRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.OutboundQueueName);
        }
コード例 #12
0
        static GenerateCorrespondingVoucherBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <GenerateCorrespondingVoucherRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.GenerateCorrespondingVoucherResponseQueueName);
        }
コード例 #13
0
ファイル: CheckThirdPartyBus.cs プロジェクト: jhonner72/plat
        static CheckThirdPartyBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <CheckThirdPartyBatchRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.CheckThirdPartyResponseQueueName);
        }
コード例 #14
0
        static VifBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            RequestExchange = new ExchangePublisher <SendBatchValueInstructionFileRequest>(Bus);

            Queue = Bus.QueueDeclare(ConfigurationHelper.VifResponseQueueName);
        }
コード例 #15
0
        /// <summary>
        /// Reinjects the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="header">The header.</param>
        public void Reinject(IMessage message, MessageHeader header)
        {
            if (header.ReinjectionNumber > _maxReijections)
            {
                return;
            }

            header.ReinjectionNumber++;

            var messageBus = MessageBusFactory.Create(header.IdentificationService, message, DataContractSerializer);

            messageBus.Header = header;
            var serializedMessage = DataContractSerializer.Serialize(messageBus);

            _receiverReceiverEndPoint.Reinject(serializedMessage, header.Priority);
        }
コード例 #16
0
        public void SendMessageAssertTrue()
        {
            var jsonDataContractSerializer = new JsonDataContractSerializer();

            var messageFake = new MessageFake {
                CreatedAt = DateTime.Now.Date
            };
            var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer);

            var message = string.Empty;

            _senderEndPoint.Setup(s => s.Send(It.IsAny <string>(), It.IsAny <int>())).Callback <string, int>((s, p) => message = s);

            var outputGateway = RouterGatewayFactory.CreateOutputGateway(_senderEndPoint.Object);
            var serialize     = jsonDataContractSerializer.Serialize(messageBus);

            outputGateway.Send(Encoding.UTF8.GetBytes(serialize));
            Assert.AreEqual(serialize, message);
        }
コード例 #17
0
        /// <summary>
        /// Sends the specified MSG.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="priority">The priority.</param>
        /// <returns>Bytes Sent</returns>
        public override int Send(IMessage message, int priority)
        {
            try
            {
                var messageBus = MessageBusFactory.Create(_identification, message, DataContractSerializer);
                messageBus.Header.Priority = priority;

                var callerContext = CallerContextFactory.Create(_identification);
                messageBus.Header.CallStack.Push(callerContext);

                var serializedMessage = MessageBusParser.ToBytes(messageBus);
                SenderEndPoint.Send(serializedMessage, priority);
                InvokeSentMessage(messageBus.Header.BodyType, serializedMessage.Length);
                return(serializedMessage.Length);
            }
            catch (Exception ex)
            {
                Logger.Error("OutputGateway - Error Send Message", ex);
                throw;
            }
        }
コード例 #18
0
        public void SendMessageAssertTrue()
        {
            var jsonDataContractSerializer = new JsonDataContractSerializer();

            var messageFake = new MessageFake {
                CreatedAt = DateTime.Now.Date
            };
            var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer);

            var message = string.Empty;

            _senderEndPoint.Setup(s => s.Send(It.IsAny <string>(), It.IsAny <int>())).Callback <string, int>((s, p) => message = s);

            var outputGateway = AgentGatewayFactory.CreateOutputGateway(_identification, _senderEndPoint.Object);

            outputGateway.Send(messageFake);

            var deserialized = jsonDataContractSerializer.Deserialize <MessageBus>(message);

            Assert.AreEqual(messageBus.Body, deserialized.Body);
            Assert.AreEqual(messageBus.Header.Type, deserialized.Header.Type);
            Assert.AreEqual(messageBus.Header.BodyType, deserialized.Header.BodyType);
        }
コード例 #19
0
        /// <summary>
        /// Sends the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="messageInfo">The message info.</param>
        /// <returns></returns>
        public override int Send(IMessage message, IMessageInfo messageInfo)
        {
            try
            {
                var messageBus = MessageBusFactory.Create(_identification, message, DataContractSerializer);

                messageBus.Header.Priority    = messageInfo.Header.Priority;
                messageBus.Header.CallStack   = messageInfo.Header.CallStack;
                messageBus.Header.CallContext = messageInfo.CurrentCallContext;

                if (!messageInfo.IsReply)
                {
                    var callerContext = CallerContextFactory.Create(_identification, messageInfo.CurrentSession);
                    messageBus.Header.CallStack.Push(callerContext);
                }
                else
                {
                    messageBus.Header.Type = MessageBusType.Reply;
                }

                var serializedMessage = MessageBusParser.ToBytes(messageBus);

                if (!messageInfo.IsReply)
                {
                    messageBus.Header.CallStack.Pop();
                }

                SenderEndPoint.Send(serializedMessage, messageInfo.Header.Priority);
                InvokeSentMessage(messageBus.Header.BodyType, serializedMessage.Length);
                return(serializedMessage.Length);
            }
            catch (Exception ex)
            {
                Logger.Error("OutputGateway - Error Send Message", ex);
                throw;
            }
        }
コード例 #20
0
        protected override void Load(ContainerBuilder builder)
        {
            var connectionString = ConfigurationManager.ConnectionStrings["rabbitMQ"].ConnectionString;

            var messageBus = MessageBusFactory.CreateBus(connectionString);

            builder
            .RegisterInstance(messageBus)
            .As <IAdvancedBus>()
            .SingleInstance();

            builder
            .RegisterType <AdjustmentLettersRequestProcessorFactory>()
            .As <IMessageProcessorFactory <CreateBatchAdjustmentLettersRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <CreateBatchAdjustmentLettersRequest> >()
            .As <IQueueConsumer <CreateBatchAdjustmentLettersRequest> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <CreateBatchAdjustmentLettersResponse> >()
            .As <IExchangePublisher <CreateBatchAdjustmentLettersResponse> >()
            .SingleInstance();

            builder
            .RegisterType <CustomErrorHandling>()
            .As <ICustomErrorHandling>()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <Error> >()
            .As <IExchangePublisher <Error> >()
            .SingleInstance();
        }
コード例 #21
0
ファイル: MessageModule.cs プロジェクト: jhonner72/plat
        protected override void Load(ContainerBuilder builder)
        {
            var connectionString = ConfigurationManager.ConnectionStrings["rabbitMQ"].ConnectionString;

            //MessageBus

            var messageBus = MessageBusFactory.CreateBus(connectionString);

            builder
            .RegisterInstance(messageBus)
            .As <IAdvancedBus>()
            .SingleInstance();

            //Error Handling

            builder
            .RegisterType <CustomErrorHandling>()
            .As <ICustomErrorHandling>()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <Error> >()
            .As <IExchangePublisher <Error> >()
            .SingleInstance();

            //Mapper

            builder
            .RegisterType <BatchCodelineRequestMapHelper>()
            .As <IBatchCodelineRequestMapHelper>()
            .SingleInstance();

            builder
            .RegisterType <BatchTransactionRequestMapHelper>()
            .As <IBatchTransactionRequestMapHelper>()
            .SingleInstance();

            builder
            .RegisterType <BatchCheckThirdPartyRequestMapHelper>()
            .As <IBatchCheckThirdPartyRequestMapHelper>()
            .SingleInstance();

            builder
            .RegisterType <GenerateCorrespondingVoucherRequestMapHelper>()
            .As <IGenerateCorrespondingVoucherRequestMapHelper>()
            .SingleInstance();

            builder
            .RegisterType <GenerateBulkCreditRequestMapHelper>()
            .As <IGenerateBulkCreditRequestMapHelper>()
            .SingleInstance();

            //Queues

            builder
            .RegisterType <ValidateCodelineRequestProcessorFactory>()
            .As <IMessageProcessorFactory <ValidateBatchCodelineRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <ValidateBatchCodelineRequest> >()
            .As <IQueueConsumer <ValidateBatchCodelineRequest> >()
            .SingleInstance();

            builder
            .RegisterType <CorrectCodelineRequestProcessorFactory>()
            .As <IMessageProcessorFactory <CorrectBatchCodelineRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <CorrectBatchCodelineRequest> >()
            .As <IQueueConsumer <CorrectBatchCodelineRequest> >()
            .SingleInstance();

            builder
            .RegisterType <ValidateTransactionRequestProcessorFactory>()
            .As <IMessageProcessorFactory <ValidateBatchTransactionRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <ValidateBatchTransactionRequest> >()
            .As <IQueueConsumer <ValidateBatchTransactionRequest> >()
            .SingleInstance();

            builder
            .RegisterType <CorrectTransactionRequestProcessorFactory>()
            .As <IMessageProcessorFactory <CorrectBatchTransactionRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <CorrectBatchTransactionRequest> >()
            .As <IQueueConsumer <CorrectBatchTransactionRequest> >()
            .SingleInstance();

            builder
            .RegisterType <CheckThirdPartyRequestProcessorFactory>()
            .As <IMessageProcessorFactory <CheckThirdPartyBatchRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <CheckThirdPartyBatchRequest> >()
            .As <IQueueConsumer <CheckThirdPartyBatchRequest> >()
            .SingleInstance();

            builder
            .RegisterType <GenerateCorrespondingVoucherRequestProcessorFactory>()
            .As <IMessageProcessorFactory <GenerateCorrespondingVoucherRequest> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <GenerateCorrespondingVoucherRequest> >()
            .As <IQueueConsumer <GenerateCorrespondingVoucherRequest> >()
            .SingleInstance();

            builder
            .RegisterType <GetVouchersInformationResponseProcessorFactory>()
            .As <IMessageProcessorFactory <GetVouchersInformationResponse> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <GetVouchersInformationResponse> >()
            .As <IQueueConsumer <GetVouchersInformationResponse> >()
            .SingleInstance();

            builder
            .RegisterType <QueueConsumer <GenerateBatchBulkCreditRequest> >()
            .As <IQueueConsumer <GenerateBatchBulkCreditRequest> >()
            .SingleInstance();

            builder
            .RegisterType <GenerateBulkCreditRequestProcessorFactory>()
            .As <IMessageProcessorFactory <GenerateBatchBulkCreditRequest> >()
            .SingleInstance();

            //Exchanges

            builder
            .RegisterType <ExchangePublisher <ValidateBatchCodelineResponse> >()
            .As <IExchangePublisher <ValidateBatchCodelineResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <CorrectBatchCodelineResponse> >()
            .As <IExchangePublisher <CorrectBatchCodelineResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <ValidateBatchTransactionResponse> >()
            .As <IExchangePublisher <ValidateBatchTransactionResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <CorrectBatchTransactionResponse> >()
            .As <IExchangePublisher <CorrectBatchTransactionResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <CheckThirdPartyBatchResponse> >()
            .As <IExchangePublisher <CheckThirdPartyBatchResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <GenerateCorrespondingVoucherResponse> >()
            .As <IExchangePublisher <GenerateCorrespondingVoucherResponse> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <GetVouchersInformationRequest> >()
            .As <IExchangePublisher <GetVouchersInformationRequest> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <GetVouchersInformationRequest> >()
            .As <IExchangePublisher <GetVouchersInformationRequest> >()
            .SingleInstance();

            builder
            .RegisterType <ExchangePublisher <GenerateBatchBulkCreditResponse> >()
            .As <IExchangePublisher <GenerateBatchBulkCreditResponse> >()
            .SingleInstance();
        }
コード例 #22
0
        public RootController()
        {
            _solver = FibonacciSolverFactory.GetSolver();

            _messageBus = MessageBusFactory.GetMassTransitMessageBus();
        }
コード例 #23
0
ファイル: JobBus.cs プロジェクト: jhonner72/plat
        static JobBus()
        {
            Bus = MessageBusFactory.CreateBus(ConfigurationHelper.RabbitMqConnectionString);

            Queue = Bus.QueueDeclare(ConfigurationHelper.JobsQueueName);
        }
コード例 #24
0
 public FibonacciService()
 {
     _messageBus = MessageBusFactory.GetMassTransitMessageBus(HandleResponse);
     _messageBus.Start();
 }