Exemple #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <SportNewsContext>(options =>
                                                     options.UseSqlServer(Configuration.GetConnectionString("Database")),
                                                     ServiceLifetime.Transient);

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(option =>
            {
                option.RequireHttpsMetadata      = false;
                option.SaveToken                 = true;
                option.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer           = true,
                    ValidateAudience         = true,
                    ValidateLifetime         = true,
                    ValidateIssuerSigningKey = true,
                    ValidIssuer      = Configuration["Jwt:Issuer"],
                    ValidAudience    = Configuration["Jwt:Audience"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SecretKey"])),
                    ClockSkew        = TimeSpan.Zero
                };
                //services.AddCors()
            });
            services.AddAuthorization(configure =>
            {
                configure.AddPolicy(Policies.SuperAdmin, Policies.FullAdminPolicy());
                configure.AddPolicy(Policies.Admin, Policies.AdminPolicy());
                configure.AddPolicy(Policies.Dziennikarz, Policies.FullJournalistPolicy());
                configure.AddPolicy(Policies.CustomJournalist, Policies.CustomJournalistPolicy());
            });

            //services.AddCors(options =>
            //{
            //    options.AddPolicy("AllowOrigin",
            //    builder =>
            //    {
            //        builder.WithOrigins("http://localhost:4200")
            //                            .AllowAnyHeader()
            //                            .AllowAnyMethod()
            //                            .AllowCredentials();
            //    });
            //}); ;
            services.AddControllers().AddJsonOptions(options =>
                                                     options.JsonSerializerOptions.Converters.Add(new IntToStringConverter()));

            services.AddTransient(typeof(IRepository <>), typeof(Repository <>));
            services.AddTransient(typeof(ISportNewsContext), typeof(SportNewsContext));
            services.AddTransient(typeof(IUnitOfWork), typeof(UnitOfWork));
        }