Пример #1
0
        public static IServiceCollection AddWebApi(this IServiceCollection services, WebApiExtensionConfig config)
        {
            services
            .AddApiVersioning()
            .AddVersionedApiExplorer()
            .AddJwtAuthentication(config.AuthenticationExtensionConfig)
            .AddAuthorization(config.AuthorizationExtensionConfig)
            .AddAutoMapper(config.AutoMapperAssemblies)
            .AddCommunicationBus(config.StartupAssembly)
            .AddCors()
            .AddMvcCore(config.Environment, config.StartupAssembly)
            .AddSwagger(config.SwaggerExtensionConfig)
            .AddApplicationInsightsTelemetry();

            if (config.Environment.IsNotLocalOrDocker())
            {
                services.AddHsts();
            }

            services.AddSingleton <Core.Mapper.IMapper, Infrastructure.Mapper.Mapper>();
            services.AddSingleton <ILogger, Logger>();
            services.AddSingleton(typeof(IOrderByExpressionCreator <>), typeof(OrderByExpressionCreator <>));

            return(services);
        }
Пример #2
0
        public override void ConfigureServices(IServiceCollection services)
        {
            var authAppSettings     = Config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth);
            var keyVaultAppSettings = Config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault);
            var swaggerAppSettings  = Config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger);

            var authenticationExtensionConfig = new AuthenticationExtensionConfig(Env,
                                                                                  ApiResourcesConstants.RivaIdentityApiResource.Name, authAppSettings.Authority,
                                                                                  AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name,
                                                                                  keyVaultAppSettings.SigningCredentialCertificateName);
            var authorizationExtensionConfig = new AuthorizationExtensionConfig(
                ApiResourcesConstants.RivaIdentityApiResource.Name, ResourceOwnerPolicy.CreateResourceOwnerPolicy());
            var swaggerExtensionConfig = new SwaggerExtensionConfig(ApiResourcesConstants.RivaIdentityApiResource.Name, swaggerAppSettings.IdentityUrl);
            var webApiExtensionConfig  = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly,
                                                                   authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig,
                                                                   typeof(Startup).Assembly, typeof(AccountProfile).Assembly);

            services
            .AddWebApiForIntegrationTest(webApiExtensionConfig)
            .AddAuthorizationHandlers()
            .AddHealthChecks(Config)
            .AddAppSettings(Config)
            .AddIntegrationEventBus(Config.GetSectionAppSettings <ConnectionStringsAppSettings>(AppSettingsConstants.ConnectionStrings).CentralServiceBusConnectionString,
                                    Config.GetSectionAppSettings <CentralServiceBusAppSettings>(AppSettingsConstants.CentralServiceBus).SubscriptionName)
            .AddDependencies()
            .AddDbContext <RivaIdentityDbContext>(SqlServerConfigurator.Configure(services, Config, Env))
            .AddDomainEventsStore <RivaIdentityDbContext>()
            .AddHttpContextAccessor();
        }
Пример #3
0
        public static IServiceCollection AddWebApi(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env)
        {
            var authAppSettings     = config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth);
            var keyVaultAppSettings = config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault);
            var swaggerAppSettings  = config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger);

            var authenticationExtensionConfig = new AuthenticationExtensionConfig(env,
                                                                                  ApiResourcesConstants.RivaSignalRApiResource.Name, authAppSettings.Authority,
                                                                                  AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name,
                                                                                  keyVaultAppSettings.SigningCredentialCertificateName);
            var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaSignalRApiResource.Name);
            var swaggerExtensionConfig       = new SwaggerExtensionConfig(ApiResourcesConstants.RivaSignalRApiResource.Name, swaggerAppSettings.IdentityUrl);
            var webApiExtensionConfig        = new WebApiExtensionConfig(env, typeof(Startup).GetTypeInfo().Assembly,
                                                                         authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig,
                                                                         typeof(Startup).Assembly, typeof(Startup).Assembly);

            return(services.AddWebApi(webApiExtensionConfig));
        }
Пример #4
0
        public override void ConfigureServices(IServiceCollection services)
        {
            var authAppSettings     = Config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth);
            var keyVaultAppSettings = Config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault);
            var swaggerAppSettings  = Config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger);

            var authenticationExtensionConfig = new AuthenticationExtensionConfig(Env,
                                                                                  ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name, authAppSettings.Authority,
                                                                                  AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name,
                                                                                  keyVaultAppSettings.SigningCredentialCertificateName);
            var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name);
            var swaggerExtensionConfig       = new SwaggerExtensionConfig(ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name, swaggerAppSettings.IdentityUrl);
            var webApiExtensionConfig        = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly,
                                                                         authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig,
                                                                         typeof(Startup).Assembly, typeof(StateProfile).Assembly);

            services
            .AddWebApiForIntegrationTest(webApiExtensionConfig)
            .AddHealthChecks(Config)
            .AddMemoryCache()
            .AddDependencies()
            .AddDbContext <RivaAdministrativeDivisionsDbContext>(SqlServerConfigurator.Configure(services, Config, Env));
        }
Пример #5
0
        public override void ConfigureServices(IServiceCollection services)
        {
            var authAppSettings     = Config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth);
            var keyVaultAppSettings = Config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault);
            var swaggerAppSettings  = Config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger);

            var authenticationExtensionConfig = new AuthenticationExtensionConfig(Env,
                                                                                  ApiResourcesConstants.RivaAnnouncementsApiResource.Name, authAppSettings.Authority,
                                                                                  AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name,
                                                                                  keyVaultAppSettings.SigningCredentialCertificateName);
            var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaAnnouncementsApiResource.Name);
            var swaggerExtensionConfig       = new SwaggerExtensionConfig(ApiResourcesConstants.RivaAnnouncementsApiResource.Name, swaggerAppSettings.IdentityUrl);
            var webApiExtensionConfig        = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly,
                                                                         authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig,
                                                                         typeof(Startup).Assembly, typeof(RoomForRentAnnouncementProfile).Assembly);

            services
            .AddWebApiForIntegrationTest(webApiExtensionConfig)
            .AddHttpContextAccessor()
            .AddHealthChecks(Config)
            .AddCosmonaut(Config)
            .AddAppSettings(Config)
            .AddDependencies();
        }
Пример #6
0
        public static IServiceCollection AddWebApiForIntegrationTest(this IServiceCollection services, WebApiExtensionConfig config)
        {
            ApiVersioningExtension.AddApiVersioning(services);
            VersionedApiExplorerExtension.AddVersionedApiExplorer(services);
            CorsExtension.AddCors(services);
            services
            .AddJwtAuthentication(config.AuthenticationExtensionConfig)
            .AddAuthorizationForIntegrationTest(config.AuthorizationExtensionConfig)
            .AddAutoMapper(config.AutoMapperAssemblies)
            .AddCommunicationBus(config.StartupAssembly)
            .AddMvcCore(config.Environment, config.StartupAssembly)
            .AddSwagger(config.SwaggerExtensionConfig);

            services.AddSingleton <Core.Mapper.IMapper, Infrastructure.Mapper.Mapper>();
            services.AddSingleton <ILogger, Logger>();
            services.AddSingleton(typeof(IOrderByExpressionCreator <>), typeof(OrderByExpressionCreator <>));

            return(services);
        }