Esempio n. 1
0
        // 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"]))
                    };
                }
            });
        }