Esempio n. 1
0
        /// <summary>
        /// Use JSON for message serialization.
        /// </summary>
        /// <param name="cfg"></param>
        /// <returns></returns>
        public static MessageBusConfiguration WithJsonMessageSerializer(this MessageBusConfiguration cfg)
        {
            ISerializer serializer = new JsonNetSerializer();

            Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSerializer(cfg, serializer);
            return(cfg);
        }
Esempio n. 2
0
        /// <summary>
        /// Use BSON for subscription serialization.
        /// </summary>
        /// <param name="cfg"></param>
        /// <returns></returns>
        public static MessageBusConfiguration WithBsonSubscriptionSerializer(this MessageBusConfiguration cfg)
        {
            IDocumentSerializer serializer = new BsonNetDocumentSerializer();

            Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetSubscriptionSerializer(cfg, serializer);
            return(cfg);
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel();
            IMessageBusConfiguration configuration =
                MessageBusConfiguration.Create()
                .EndpointName("TestSubscriber")
                .ErrorQueueName("SubscriberErrors")
                .AddMessageDefinition <TestMessage>(d => {
                d.MessageAction = MessageAction.Event;
                d.QueueName     = "TestService";
                d.HandlerType   = typeof(TestMessageHandler);
            });

            kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>();
            kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope();

            IMessageBusContainer container = new NinjectContainer(kernel);

            //var bus = new NSBMessageBus(container, configuration);
            //var bus = new RMQMessageBus(container, configuration);
            //var bus = new AMQMessageBus(container, configuration);
            var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus"));

            bus.Start();

            Console.WriteLine("Press Enter to quit");
            Console.ReadLine();
        }
Esempio n. 4
0
        /// <summary>
        /// Use MSMQ for message transport.
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="queueName"></param>
        /// <returns></returns>
        public static MessageBusConfiguration WithMSMQ(this MessageBusConfiguration cfg, string queueName)
        {
            ISerializer serializer = Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.GetMessageSerializer(cfg);

            Msmq.IMessageFormatter messageFormater = new MSMQMessageFormatter(serializer);

            IMessageSource messageSource = new MSMQMessageSource(queueName, messageFormater);

            Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSource(cfg, messageSource);

            IMessageSink messageSink = new MSMQMessageSink(messageFormater);

            Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSink(cfg, messageSink);

            return(cfg);
        }
        private void ConfigureMassTransitServices(IServiceCollection services)
        {
            var messageBusConfiguration = new MessageBusConfiguration(Configuration);

            services.AddMassTransit(serviceCollectionBusConfigurator =>
            {
                serviceCollectionBusConfigurator.UsingRabbitMq((_, rabbitMqBusFactoryConfigurator) =>
                {
                    rabbitMqBusFactoryConfigurator.Host(
                        messageBusConfiguration.Hostname,
                        messageBusConfiguration.Port,
                        messageBusConfiguration.VirtualHost,
                        null);
                });

                EndpointConvention.Map <CreateRecordMessageBusMessage>(new Uri($"queue:{messageBusConfiguration.SearchRecordQueueName}"));
            });
        }
        private static HostBuilder ConfigureServices()
        {
            var hostBuilder = new HostBuilder();

            hostBuilder.ConfigureAppConfiguration((_, config) =>
            {
                config.AddJsonFile("appsettings.json", true);
            });

            hostBuilder.ConfigureServices((hostContext, serviceCollection) =>
            {
                var messageBusConfiguration = new MessageBusConfiguration(hostContext.Configuration);

                serviceCollection.AddMassTransit(serviceCollectionBusConfigurator =>
                {
                    serviceCollectionBusConfigurator.AddConsumer <CreateRecordConsumer>().Endpoint(consumerEndpointRegistrationConfigurator =>
                    {
                        consumerEndpointRegistrationConfigurator.Name = messageBusConfiguration.SearchRecordQueueName;
                    });

                    serviceCollectionBusConfigurator.UsingRabbitMq((provider, rabbitMqBusFactoryConfigurator) =>
                    {
                        rabbitMqBusFactoryConfigurator.Host(
                            messageBusConfiguration.Hostname,
                            messageBusConfiguration.Port,
                            messageBusConfiguration.VirtualHost,
                            null);

                        rabbitMqBusFactoryConfigurator.ConfigureEndpoints(provider);
                    });
                });

                serviceCollection.AddHostedService <MessageBusHostedService>();
                serviceCollection.AddTransient <ISearchConfiguration, SearchConfiguration>();
                serviceCollection.AddTransient <IClientCreator, ClientCreator>();
                serviceCollection.AddTransient <IRecordDocumentService, RecordDocumentService>();
            });


            return(hostBuilder);
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel();
            IMessageBusConfiguration configuration =
                MessageBusConfiguration.Create()
                .EndpointName("TestClient")
                .ErrorQueueName("ClientErrors")
                .AddMessageDefinition <TestRequest>(d => d.MessageAction = MessageAction.Command);

            kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>();
            kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope();

            IMessageBusContainer container = new NinjectContainer(kernel);

            //var bus = new NSBMessageBus(container, configuration);
            //var bus = new RMQMessageBus(container, configuration);
            //var bus = new AMQMessageBus(container, configuration);
            var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus"));

            bus.Start();

            SendMessages(bus);
        }