public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddAppInsight(_appConfiguration, "Piggy API"); services.Configure <PiggySettings>(_appConfiguration); //MVC services.AddControllersWithViews( options => { options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); } ).AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new AbpMvcContractResolver(IocManager.Instance) { NamingStrategy = new CamelCaseNamingStrategy() }; }); IdentityRegistrar.Register(services); AuthConfigurer.Configure(services, _appConfiguration); services.AddSignalR(); // Configure CORS for angular2 UI services.AddCors( options => options.AddPolicy( _defaultCorsPolicyName, builder => builder .WithOrigins( // App:CorsOrigins in appsettings.json can contain more than one address separated by comma. _appConfiguration["App:CorsOrigins"] .Split(",", StringSplitOptions.RemoveEmptyEntries) .Select(o => o.RemovePostFix("/")) .ToArray() ) .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials() ) ); // Swagger - Enable this line and the related lines in Configure method to enable swagger UI services.AddSwaggerGen(options => { options.SwaggerDoc(_apiVersion, new OpenApiInfo { Version = _apiVersion, Title = "Piggyvault API", Description = "Piggyvault", // uncomment if needed TermsOfService = new Uri("https://example.com/terms"), Contact = new OpenApiContact { Name = "Piggyvault", Email = string.Empty, Url = new Uri("https://www.abhith.net"), }, License = new OpenApiLicense { Name = "MIT License", Url = new Uri("https://github.com/piggyvault/piggyvault"), } }); options.DocInclusionPredicate((docName, description) => true); // Define the BearerAuth scheme that's in use options.AddSecurityDefinition("bearerAuth", new OpenApiSecurityScheme() { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); }); var serilogConfig = new LoggerConfiguration(); // TODO(abhith): fix DI var sp = services.BuildServiceProvider(); serilogConfig.WithSimpleConfiguration(_appConfiguration, sp); // Configure Abp and Dependency Injection return(services.AddAbp <PiggyvaultWebHostModule>( // Configure Log4Net logging (options) => { //options.IocManager.IocContainer.AddFacility<LoggingFacility>( // f => f.UseAbpLog4Net().WithConfig("log4net.config") // ); options.IocManager.IocContainer.AddFacility <LoggingFacility>( f => f.LogUsing(new SerilogFactory(serilogConfig.CreateLogger())) ); } )); }
public IServiceProvider ConfigureServices(IServiceCollection services) { services.Configure <PiggySettings>(_appConfiguration).AddSingleton(sp => sp.GetRequiredService <IOptions <PiggySettings> >().Value); //MVC services.AddControllersWithViews( options => { options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); } ).AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new AbpMvcContractResolver(IocManager.Instance) { NamingStrategy = new CamelCaseNamingStrategy() }; }); IdentityRegistrar.Register(services); AuthConfigurer.Configure(services, _appConfiguration); services.AddSignalR(); // Configure CORS for angular2 UI services.AddCors( options => options.AddPolicy( _defaultCorsPolicyName, builder => builder .WithOrigins( // App:CorsOrigins in appsettings.json can contain more than one address separated by comma. _appConfiguration["App:CorsOrigins"] .Split(",", StringSplitOptions.RemoveEmptyEntries) .Select(o => o.RemovePostFix("/")) .ToArray() ) .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials() ) ); // Swagger - Enable this line and the related lines in Configure method to enable swagger UI services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo() { Title = "Piggyvault API", Version = "v1" }); options.DocInclusionPredicate((docName, description) => true); // Define the BearerAuth scheme that's in use options.AddSecurityDefinition("bearerAuth", new OpenApiSecurityScheme() { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); }); // Configure Abp and Dependency Injection return(services.AddAbp <PiggyvaultWebHostModule>( // Configure Log4Net logging options => options.IocManager.IocContainer.AddFacility <LoggingFacility>( f => f.UseAbpLog4Net().WithConfig("log4net.config") ) )); }