public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(options => { options.ReturnHttpNotAcceptable = true; options.OutputFormatters.RemoveType <HttpNoContentOutputFormatter>(); options.InputFormatters.Add(new XmlSerializerInputFormatter(new MvcOptions())); options.OutputFormatters.Add(new XmlSerializerOutputFormatter()); options.FormatterMappings.SetMediaTypeMappingForFormat("xml", "application/xml"); }); services.AddControllers(); #region Health Checks services.AddHealthChecks(); services.AddHealthChecksUI().AddInMemoryStorage(); #endregion #region Identity Server Config IdentityServerSettings identityServerSettings = new IdentityServerSettings(); Configuration.GetSection("IdentityServerSettings").Bind(identityServerSettings); services.AddAuthentication("Bearer") .AddIdentityServerAuthentication("Bearer", options => { options.ApiName = identityServerSettings.ApiName; options.Authority = identityServerSettings.Authority; }); #endregion #region Swagger Config SwaggerGenSettings swaggerGenSettings = new SwaggerGenSettings(); Configuration.GetSection("SwaggerGenSettings").Bind(swaggerGenSettings); services.AddSwaggerGen(options => { options.SwaggerDoc(swaggerGenSettings.SwaggerDoc.name, swaggerGenSettings.SwaggerDoc.OpenApiInfo); SecurityDefinition securityDefinition = swaggerGenSettings.SecurityDefinition; Settings.Swagger.AuthorizationCode authorizationCode = securityDefinition.OpenApiSecurityScheme.AuthorizationCode; options.AddSecurityDefinition(securityDefinition.name, new OpenApiSecurityScheme { Type = securityDefinition.OpenApiSecurityScheme.SecuritySchemeType, Flows = new OpenApiOAuthFlows { AuthorizationCode = new OpenApiOAuthFlow { AuthorizationUrl = new Uri(authorizationCode.AuthorizationUrl), TokenUrl = new Uri(authorizationCode.TokenUrl), Scopes = authorizationCode.Scopes } } }); options.OperationFilter <AuthorizeCheckOperationFilter>(); }); #endregion #region Autofac Composition root // Install the container, using our configuration ContainerInstaller installer = new ContainerInstaller(); ContainerBuilder builder = installer.Install(); // Pull the .net core dependencies into the container, like controllers builder.Populate(services); IContainer container = builder.Build(); #endregion // return the IServiceProvider implementation return(new AutofacServiceProvider(container)); }
public static IServiceCollection AddDefaultSwaggerService(this IServiceCollection serviceDescriptors, SwaggerGenSettings swaggerGenSettings, Assembly?executingAssembly = null) => serviceDescriptors.AddSwaggerGen(c => {