Esempio n. 1
0
        /// <summary>
        /// This method gets called by the runtime. Use this method to add services to the container.
        /// </summary>
        /// <param name="services"></param>
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            services.AddSingleton <DiscoveryShuttle>(sp =>
            {
                var connection     = sp.GetRequiredService <RabbitMQConnection>();
                var iLifetimeScope = sp.GetRequiredService <ILifetimeScope>();
                var bus            = new DiscoveryShuttle(connection, "teste", iLifetimeScope);

                // Config
                bus.Subscribe <FoodMessage, SendFoodHandler>();
                bus.Subscribe <FoodMessage, TesteHandler>();

                return(bus);
            });

            services.AddTransient <RabbitMQConnection>(sp =>
            {
                var factory = new ConnectionFactory()
                {
                    HostName = "localhost",
                    UserName = "******",
                    Password = "******"
                };

                var connection = new RabbitMQConnection(factory);
                return(connection);
            });

            services.AddTransient <SendFoodHandler>();
            services.AddTransient <TesteHandler>();

            var builder = new ContainerBuilder();

            builder.Populate(services);
            var container = builder.Build();

            container.Resolve <DiscoveryShuttle>();
            return(new AutofacServiceProvider(container));
        }
 public SendFoodSender(DiscoveryShuttle shuttle)
 {
     this.shuttle = shuttle;
 }