Esempio n. 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <Context>(o =>
                                            o.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=Users;Trusted_Connection=True;MultipleActiveResultSets=true"));

            InjectorDependencies.Registrar(services);

            services.AddScoped <ConsumerService>();
            services.AddMassTransit(c =>
            {
                c.AddConsumer <ConsumerService>();
            });

            services.AddSingleton(provider => Bus.Factory.CreateUsingRabbitMq(
                                      cfg =>
            {
                var host = cfg.Host(new Uri("amqp://*****:*****@prawn.rmq.cloudamqp.com/bnydqltr"), "/", h => { });

                cfg.ReceiveEndpoint(host, "document-service", e =>
                {
                    e.PrefetchCount = 16;

                    e.LoadFrom(provider);
                    EndpointConvention.Map <ConsumerService>(e.InputAddress);
                });
            }));

            services.AddSingleton <IBus>(provider => provider.GetRequiredService <IBusControl>());
            services.AddSingleton <IHostedService, BusService>();

            Register();

            services.AddAutoMapper(typeof(MappingEntity));

            services.AddControllers();

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Cadastro de usuários", Version = "v1"
                });
            });

            services.AddCors(options => {
                options.AddPolicy("AllowDev",
                                  builder => builder.WithOrigins("*").AllowAnyHeader()
                                  .AllowAnyMethod()
                                  );
            });
        }