// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Add DBContext services.AddDbContext <RajiNetDbContext>(options => options.UseSqlite("Filename=./development.db")); // Add mvc stuff. services.AddMvc() // Setup camelCase as default format for json. .AddJsonOptions(opt => { var resolver = opt.SerializerSettings.ContractResolver; if (resolver != null) { var res = resolver as DefaultContractResolver; res.NamingStrategy = null; } opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; }); services.AddCors(); RepositoriesConfiguration.InjectRepositories(services); }
public static void Configure(IServiceCollection services) { RepositoriesConfiguration.Configure(services); RequestAndResponsesConfiguration.Configure(services); MappingProfileInitializer.ConfigureMappings(); LoggingConfiguration.Configure(services); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <Context>(options => { options.UseNpgsql(Configuration.GetConnectionString("WebApiConnection")); } ); services.AddCors(c => { c.AddDefaultPolicy(options => options.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod()); }); services.AddControllers().AddNewtonsoftJson(o => { o.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; o.SerializerSettings.Converters.Add(new StringEnumConverter()); } ); services.ConfigureProblemDetailsModelState(); ServicesConfiguration.ConfigureDependencies(services); RepositoriesConfiguration.ConfigureDependencies(services); services.AddSingleton(MapperConfiguration.Configure()); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); var tokenConfigurations = new TokenConfigurations(); new ConfigureFromConfigurationOptions <TokenConfigurations>(Configuration.GetSection("TokenConfigurations")) .Configure(tokenConfigurations); services.AddSingleton(tokenConfigurations); var key = Encoding.ASCII.GetBytes(tokenConfigurations.Key); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; }); services.AddAuthorization(a => { a.AddPolicy("Authorization", new AuthorizationPolicyBuilder() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser().Build()); }); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Api para gerenciamento de empréstimo de Jogos", Description = "Gerenciar empréstimos dos jogos para os amigos" }); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Entre com 'Bearer', espaço e Token JWT", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, new List <string>() } }); }); }