CissyConfigBuilder BuildCissyConfig(IServiceCollection services, CissyConfigSource CissyConfigSource) { if (CissyConfigSource.ConfigSource == CissyConfigSourceKind.Local) { return(services.AddCissyConfig(_hostingEnvironment.IsDevelopment() ? AppRunStatus.Delelopment : AppRunStatus.PreProduction)); } else { return(services.AddCissyRemoteConfig(new RemoteConfigSource() { RunStatus = _hostingEnvironment.IsDevelopment() ? AppRunStatus.Delelopment : AppRunStatus.PreProduction, ConfigServer = CissyConfigSource.CissyConfigServer, AppName = CissyConfigSource.AppName, Password = CissyConfigSource.Password, Version = CissyConfigSource.Version })); } }
void ConfigCissyServices(CissyConfigBuilder CissyConfigBuilder, CissyConfigSource CissyConfigSource) { if (CissyConfigSource.StartPayment) { CissyConfigBuilder.AddPaymentConfig(); } if (CissyConfigSource.StartMemoryCache) { CissyConfigBuilder.AddLocalMemoryCache(); } if (CissyConfigSource.StartWeakCache) { CissyConfigBuilder.AddWeakCache(); } if (CissyConfigSource.StartRedis) { CissyConfigBuilder.AddRedisConfig(); } if (CissyConfigSource.StartSwagger) { CissyConfigBuilder.AddCissySwaggerConfig(); } if (CissyConfigSource.StartElasticsearch) { CissyConfigBuilder.AddElasticsearchConfig(); } if (CissyConfigSource.StartKafka) { CissyConfigBuilder.AddKafkaConfig(); } if (CissyConfigSource.StartAliOSS) { CissyConfigBuilder.AddAliOSSConfig(); } if (CissyConfigSource.StartHttpProxy) { CissyConfigBuilder.AddHttpProxyConfig(); } if (CissyConfigSource.StartWeixinApi.IsNotNull()) { CissyConfigBuilder.AddWeiXinMpApiConfig(builder => { return(CissyConfigSource.StartWeixinApi(CissyConfigBuilder)); }); } if (CissyConfigSource.StartRateLimit.IsNotNull()) { var loaderOption = CissyConfigSource.StartRateLimit(CissyConfigBuilder); if (loaderOption.IsNotNull()) { var cache = loaderOption.GetRedisCache(); if (cache.IsNull()) { CissyConfigBuilder.ServiceCollection.AddSingleton <IIpPolicyStore, MemoryCacheIpPolicyStore>(); CissyConfigBuilder.ServiceCollection.AddSingleton <IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); CissyConfigBuilder.ServiceCollection.AddSingleton <IClientPolicyStore, MemoryCacheClientPolicyStore>(); } else { CissyConfigBuilder.ServiceCollection.AddSingleton <IIpPolicyStore, RedisCacheIpPolicyStore>(); CissyConfigBuilder.ServiceCollection.AddSingleton <IRateLimitCounterStore, RedisCacheRateLimitCounterStore>(); CissyConfigBuilder.ServiceCollection.AddSingleton <IClientPolicyStore, RedisCacheClientPolicyStore>(); } CissyConfigBuilder.ServiceCollection.AddSingleton <IRateLimitLoader>(loaderOption); CissyConfigBuilder.ServiceCollection.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); CissyConfigBuilder.ServiceCollection.AddSingleton <IRateLimitConfiguration, RateLimitConfiguration>(); } } if (CissyConfigSource.StartAuthentication.IsNotNull()) { var option = CissyConfigSource.StartAuthentication(); if (option.IsNotNull()) { CissyConfigBuilder.AddCissyAuthentication(x => { x.Scheme = option.Scheme; x.AuthenticationApply = option.AuthenticationApply; x.AuthenticationType = option.AuthenticationType; }); } else { CissyConfigBuilder.AddCissyAuthentication(); } } CissyConfigBuilder.RegisterMapper(reg => { _RegisterDTOMap(reg); }); }
public abstract void _InitCissyConfig(CissyConfigSource CissyConfigSource);