internal static void ConfigurarDependencias(IConfiguration configuration, IServiceCollection services)
 {
     RegistraDependenciasWorkerServices.Registrar(services);
     RegistrarMapeamentos.Registrar();
     RegistraClientesHttp.Registrar(services, configuration);
     Orquestrador.Inicializar(services.BuildServiceProvider());
 }
Example #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            AdicionarMediatr(services);
            ConfiguraVariaveisAmbiente(services);
            ConfiguraSentry();
            var servicoProdam = new ServicoProdamOptions();

            Configuration.GetSection(nameof(ServicoProdamOptions)).Bind(servicoProdam, c => c.BindNonPublicProperties = true);

            services.AddSingleton(servicoProdam);

            RegistrarMapeamentos.Registrar();

            services
            .AdicionarRepositorios()
            .AdicionarIdentity()
            .AdicionarServicos()
            .AdicionarCasosDeUso()
            .AdicionarPoliticas()
            .AdicionarClientesHttp(servicoProdam)
            .AddMemoryCache()
            .AddApplicationInsightsTelemetry()
            .AddHostedService <WorkerRabbitMQ>();



            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "SME.AE.Worker", Version = "v1"
                });
            });
        }
Example #3
0
        public void ConfigureServices(IServiceCollection services)
        {
            AddAuthentication(services);

            services.Configure <KestrelServerOptions>(options =>
            {
                options.AllowSynchronousIO = true;
            });

            services.AdicionarRedis();

            services.AddResponseCompression(options =>
            {
                options.Providers.Add <GzipCompressionProvider>();
                options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "application/json" });
            });
            RegistrarMapeamentos.Registrar();
            RegistrarMvc.Registrar(services, Configuration);

            services.AddInfrastructure();
            services.AddApplication();
            services.AdicionarValidadoresFluentValidation();
            services.AddCors(options => options.AddDefaultPolicy(
                                 builder =>
            {
                builder.WithOrigins("*");
            })
                             );
            services
            .AddControllers()
            .AddNewtonsoftJson();

            // Register the Swagger generator, defining 1 or more Swagger documents
            registrarSwagger(services);
        }
Example #4
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <KestrelServerOptions>(options =>
            {
                options.AllowSynchronousIO = true;
            });

            services.AddResponseCompression(options =>
            {
                options.Providers.Add <GzipCompressionProvider>();
                options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "application/json" });
            });

            var variaveisGlobais = new VariaveisGlobaisOptions();

            Configuration.GetSection(nameof(VariaveisGlobaisOptions)).Bind(variaveisGlobais, c => c.BindNonPublicProperties = true);

            var servicoProdam = new ServicoProdamOptions();

            Configuration.GetSection(nameof(ServicoProdamOptions)).Bind(servicoProdam, c => c.BindNonPublicProperties = true);

            var jwtVariaveis = new SgpJwtOptions();

            Configuration.GetSection(nameof(SgpJwtOptions)).Bind(jwtVariaveis, c => c.BindNonPublicProperties = true);

            services.AddSingleton(variaveisGlobais);
            services.AddSingleton(servicoProdam);
            services.AddSingleton(jwtVariaveis);

            AddAuthentication(services, variaveisGlobais);

            services.AddApplicationInsightsTelemetry(Configuration);

            RegistrarMapeamentos.Registrar();
            RegistrarMvc.Registrar(services, variaveisGlobais);
            RegistrarClientesHttp.Registrar(services, servicoProdam, variaveisGlobais);
            ConfiguraVariaveisAmbiente(services);

            services.AddInfrastructure(variaveisGlobais);
            services.AddApplication();
            services.AdicionarValidadoresFluentValidation();
            services.AddCors(options => options.AddDefaultPolicy(
                                 builder =>
            {
                builder.WithOrigins("*");
            })
                             );
            services
            .AddControllers()
            .AddNewtonsoftJson();

            // Register the Swagger generator, defining 1 or more Swagger documents
            RegistrarSwagger(services);
            services.AddApplicationInsightsTelemetry();
        }
Example #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(Configuration);
            services.AddHttpContextAccessor();

            RegistraDependencias.Registrar(services);
            RegistrarMapeamentos.Registrar();
            RegistraClientesHttp.Registrar(services, Configuration);
            RegistraAutenticacao.Registrar(services, Configuration);
            RegistrarMvc.Registrar(services, Configuration);

            DefaultTypeMap.MatchNamesWithUnderscores = true;

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "SGP v1", Version = "v1"
                });
                c.AddSecurityDefinition("Bearer",
                                        new ApiKeyScheme
                {
                    In          = "header",
                    Description = "Para autenticação, incluir 'Bearer' seguido do token JWT",
                    Name        = "Authorization",
                    Type        = "apiKey"
                });
                c.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> > {
                    { "Bearer", Enumerable.Empty <string>() },
                });
            });

            services.AddDistributedRedisCache(options =>
            {
                options.Configuration = Configuration.GetConnectionString("SGP-Redis");
                options.InstanceName  = Configuration.GetValue <string>("Nome-Instancia-Redis");
            });
        }
Example #6
0
 public static void Main(string[] args)
 {
     RegistrarMapeamentos.Registrar();
     CreateHostBuilder(args).Build().Run();
 }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(Configuration);
            services.AddHttpContextAccessor();

            RegistraDependencias.Registrar(services);
            RegistrarMapeamentos.Registrar();
            RegistraClientesHttp.Registrar(services, Configuration);
            RegistraAutenticacao.Registrar(services, Configuration);
            RegistrarMvc.Registrar(services, Configuration);

            DefaultTypeMap.MatchNamesWithUnderscores = true;

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "SGP v1", Version = "v1"
                });
                c.AddSecurityDefinition("Bearer",
                                        new ApiKeyScheme
                {
                    In          = "header",
                    Description = "Para autenticação, incluir 'Bearer' seguido do token JWT",
                    Name        = "Authorization",
                    Type        = "apiKey"
                });
                c.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> > {
                    { "Bearer", Enumerable.Empty <string>() },
                });
            });

            services.AddDistributedRedisCache(options =>
            {
                options.Configuration = Configuration.GetConnectionString("SGP-Redis");
                options.InstanceName  = Configuration.GetValue <string>("Nome-Instancia-Redis");
            });

            services.AddApplicationInsightsTelemetry(Configuration);

            Orquestrador.Inicializar(services.BuildServiceProvider());

            if (Configuration.GetValue <bool>("FF_BackgroundEnabled", false))
            {
                Orquestrador.Registrar(new Processor(Configuration, "SGP-Postgres"));
                RegistraServicosRecorrentes.Registrar();
            }
            else
            {
                Orquestrador.Desativar();
            }

            services.AddHealthChecks()
            .AddRedis(
                Configuration.GetConnectionString("SGP-Redis"),
                "Redis Cache",
                null,
                tags: new string[] { "db", "redis" })
            .AddNpgSql(
                Configuration.GetConnectionString("SGP-Postgres"),
                name: "Postgres")
            .AddCheck <ApiJuremaCheck>("API Jurema")
            .AddCheck <ApiEolCheck>("API EOL");

            services.Configure <RequestLocalizationOptions>(options =>
            {
                options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("pt-BR");
                options.SupportedCultures     = new List <CultureInfo> {
                    new CultureInfo("pt-BR"), new CultureInfo("pt-BR")
                };
            });
        }
Example #8
0
 private static void RegistrarContextos(IServiceCollection services)
 {
     services.TryAddScoped <SgpContext, DbContext>();
     RegistrarMapeamentos.Registrar();
 }