예제 #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            var nomeBanco = Configuration["AppSettings:DatabasePath"];

            services.Configure <AppSettings>(Configuration.GetSection("AppSettings"));
            services.Configure <PathSettings>(Configuration.GetSection("PathSettings"));

            services.AddDbContext <DemoContext>(options => options.UseSqlite($"DATA SOURCE = { AppSettings.PathDatabase(nomeBanco) }"));

            ContainerIoC.Register(services);
            services.AddAutoMapper(Infra.Mapper.Config.Register);

            services.AddCors(options => options.AddPolicy("Cors", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); }));
            services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; });
            services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info {
                    Title = "Demo Net Core com DDD + EF + IOC + DI + SQLite + Swagger + Token JWT - API", Version = "v1"
                }); });

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(jwtBearerOptions =>
            {
                jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidateActor            = false,
                    ValidateAudience         = false,
                    ValidateLifetime         = false,
                    ValidateIssuerSigningKey = false,
                    ValidIssuer      = Configuration["TokenConfigurations:Issuer"],
                    ValidAudience    = Configuration["TokenConfigurations:Audience"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["TokenConfigurations:IssuerSigningKey"]))
                };
            });
        }
        public IContainer CreateContainer()
        {
            var builder = new ContainerBuilder();

            ContainerIoC.Register();
            builder.RegisterModule(new TestsModule(typeof(AutofacContainerBootstrapper).Assembly));

            return(builder.Build());
        }
예제 #3
0
        private static IServiceProvider InitIoc()
        {
            var Services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
            var builder  = new ConfigurationBuilder()
                           .SetBasePath(Directory.GetCurrentDirectory())
                           .AddJsonFile("appsettings.json");

            var Configuration = builder.Build();

            ContainerIoC.Register(Services);

            Services.AddOptions();
            Services.Configure <AppSettings>(Configuration.GetSection("AppSettings"));


            return(Services.BuildServiceProvider());
        }