// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddHttpClientServices(Configuration); services.Configure <AppSettings>(Configuration); services.AddTransient <IUserService>(_ => new UserServiceClient( EndpointConfiguration.BasicHttpBinding_IUserService, new EndpointAddress(Configuration["RegistrationUsersEndpoint"]))); services.AddTransient <IRegisterService, RegisterService>(); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "Tailwind Traders - Web BFF HTTP API", Version = "v1" }); }); services.AddApiVersioning(options => { options.ReportApiVersions = true; options.DefaultApiVersion = new ApiVersion(1, 0); options.ApiVersionReader = new QueryStringApiVersionReader(); }); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Latest) .Services .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { if (UseBc2.GetUseB2CBoolean(Configuration)) { options.Authority = Configuration["Authority"]; options.TokenValidationParameters.ValidateAudience = false; options.RequireHttpsMetadata = false; } else { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = false, ValidIssuer = Configuration["Issuer"], ValidateLifetime = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecurityKey"])) }; } }); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddHttpClientServices(); services.Configure <AppSettings>(Configuration); services.AddTransient <IUserService>(_ => new UserServiceClient( EndpointConfiguration.BasicHttpBinding_IUserService, new EndpointAddress(Configuration["RegistrationUsersEndpoint"]))); services.AddTransient <IRegisterService, RegisterService>(); services.AddSwagger(); services.AddApiVersioning(options => { options.ReportApiVersions = true; options.DefaultApiVersion = new ApiVersion(1, 0); options.ApiVersionReader = new QueryStringApiVersionReader(); }); var appInsightsIK = Configuration["ApplicationInsights:InstrumentationKey"]; if (!string.IsNullOrEmpty(appInsightsIK)) { services.AddApplicationInsightsTelemetry(appInsightsIK); } services.AddControllers() .SetCompatibilityVersion(CompatibilityVersion.Latest) .AddNewtonsoftJson() .Services .AddHealthChecks(Configuration) .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { if (UseBc2.GetUseB2CBoolean(Configuration)) { options.Authority = Configuration["Authority"]; options.TokenValidationParameters.ValidateAudience = false; options.RequireHttpsMetadata = false; } else { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = false, ValidIssuer = Configuration["Issuer"], ValidateLifetime = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecurityKey"])) }; } }); }