using HRD.AppLogger; using HRD.LDAPService.JWT; using HRD.WebApi.DAL.Middleware; using HRD.WebApi.Helpers; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Server.IISIntegration; using Microsoft.Extensions.DependencyInjection; namespace StaffDBServer.SharedExtensions { public static class ServiceExtensions { public static void ConfigureWebApiExtensionsAtFirst(this IServiceCollection services) { //services.AddCors(); services.AddCustomCors("AllowAllOrigins"); services.Configure(options => { options.AuthenticationDisplayName = "Windows"; options.ForwardClientCertificate = true; options.AutomaticAuthentication = true; }); services.AddAuthentication(IISDefaults.AuthenticationScheme); services.ConfigureJWT(Extends.JwtMiddlewareOptionsHelper.GetJwtMiddlewareOptions()); ; services.ConfigureDAL(WebApiMiddlewareOptionsHelper.GetWebApiMiddlewareOptions()); services.AddSingleton(); services.ConfigureSwagger(); } public static void ConfigureWebApiExtensionsEnd(this IServiceCollection services) { services.AddMvc() .ConfigureApiBehaviorOptions(options => { options.InvalidModelStateResponseFactory = context => { var errors = new HRD.WebApi.Helpers.HttpErrorDetails(context); return new BadRequestObjectResult(errors); }; }); } } }