public void ConfigureServices(IServiceCollection services) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.AddAuthorization(authorizationOptions => { // Create an authorization policy for the Games API that requires the "Music.Read" scope to be contained in the bearer // JWT. authorizationOptions.AddPolicy( Constants.AuthorizationPolicies.ReadMusic, policy => policy.RequireAssertion(context => { var scopeClaim = context.User.FindFirst("http://schemas.microsoft.com/identity/claims/scope"); if (scopeClaim == null) { return(false); } return(scopeClaim.Value.Split(' ').Contains("Music.Read")); })); }); services.AddMvc(options => { options.Filters.Add(typeof(CultureFilterAttribute)); options.Filters.Add(typeof(LocationFilterAttribute)); }); services.AddSingleton <ITempDataProvider, CookieTempDataProvider>(); services.AddTransient <IAlbumRepository, AlbumRepository>(); var geolocationService = new FreeGeoIpGeolocationService(); services.AddSingleton <IGeolocationService>(geolocationService); }
public void ConfigureServices(IServiceCollection services) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.Configure <ActivationControllerOptions>(o => { var activationConfigurationSection = Configuration.GetSection("Activation"); o.Key = activationConfigurationSection["Key"]; }); services.Configure <InvitationControllerOptions>(o => { var invitationConfigurationSection = Configuration.GetSection("Invitation"); o.Key = invitationConfigurationSection["Key"]; }); services.AddAuthorization(authorizationOptions => { // Create an authorization policy for the Games API that requires the "Games.Read" scope to be contained in the bearer // JWT. authorizationOptions.AddPolicy( Constants.AuthorizationPolicies.ReadGames, policy => policy.RequireAssertion(context => { var scopeClaim = context.User.FindFirst("http://schemas.microsoft.com/identity/claims/scope"); if (scopeClaim == null) { return(false); } return(scopeClaim.Value.Split(' ').Contains("Games.Read")); })); }); services.AddMvc(options => { options.Filters.Add(typeof(CultureFilterAttribute)); options.Filters.Add(typeof(LocationFilterAttribute)); }); services.AddSingleton <ITempDataProvider, CookieTempDataProvider>(); services.AddTransient <IGameRepository, GameRepository>(); var billingService = new WingTipBillingService(); services.AddSingleton <IBillingService>(billingService); var geolocationService = new FreeGeoIpGeolocationService(); services.AddSingleton <IGeolocationService>(geolocationService); var musicService = new WingTipMusicService(); services.AddSingleton <IMusicService>(musicService); var smtpServiceConfigurationSection = Configuration.GetSection("SendGridSmtpService"); var smtpService = new SendGridSmtpService( true, smtpServiceConfigurationSection["Host"], int.Parse(smtpServiceConfigurationSection["Port"]), smtpServiceConfigurationSection["User"], smtpServiceConfigurationSection["Pass"]); services.AddSingleton <ISmtpService>(smtpService); }