public void ConfigureServices()

in Source/ApiGWs/Tailwind.Traders.WebBff/Startup.cs [37:88]


        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"]))
                                    };
                                }
                            });
        }