void ReadyConf() { this.Rules = this.configuration.GetSection("Rules").GetChildren().Select(conf => { InterceptionRule rule = new InterceptionRule(); rule.NameSpace = conf["NameSpace"]; rule.MethodName = conf["MethodName"]; if (conf["MethoMmodifiers"] == "" || conf["MethoMmodifiers"] == "*") { rule.MethoMmodifiers = new[] { "public", "private", "internal", "protected", "internal protected" } } ; else { //rule.MethoMmodifiers = (MethoMmodifiers)Enum.Parse(typeof(MethoMmodifiers), conf["MethoMmodifiers"].Split('|').Where(p => p.IsNotNullOrEmpty()).Select(p => "@" + p).ConcatEx("|")); rule.MethoMmodifiers = conf["MethoMmodifiers"].Split('|'); } rule.Ref = conf.GetSection("Ref").Get <string[]>(); return(rule); }).ToArray(); List <InterceptorSettingInterceptor> _interceptors = new List <InterceptorSettingInterceptor>(); ConfigurationBinder.Bind(configuration.GetSection("Interceptors"), _interceptors); this.Interceptors = _interceptors.ToArray(); }
public TestServiceProvider( IOmniSharpEnvironment environment, ILoggerFactory loggerFactory, ISharedTextWriter sharedTextWriter, IConfiguration configuration) { _logger = loggerFactory.CreateLogger <TestServiceProvider>(); _services[typeof(IOptionsMonitor <OmniSharpOptions>)] = new OptionsMonitor <OmniSharpOptions>( new IConfigureOptions <OmniSharpOptions>[] { new ConfigureOptions <OmniSharpOptions>(c => ConfigurationBinder.Bind(configuration, c)) }, Enumerable.Empty <IOptionsChangeTokenSource <OmniSharpOptions> >() ); var assemblyLoader = new AssemblyLoader(loggerFactory); var msbuildLocator = MSBuildLocator.CreateStandAlone(loggerFactory, assemblyLoader, allowMonoPaths: false); var memoryCache = new MemoryCache(new MemoryCacheOptions()); _services[typeof(ILoggerFactory)] = loggerFactory; _services[typeof(IOmniSharpEnvironment)] = environment; _services[typeof(IAssemblyLoader)] = assemblyLoader; _services[typeof(IMemoryCache)] = memoryCache; _services[typeof(ISharedTextWriter)] = sharedTextWriter; _services[typeof(IMSBuildLocator)] = msbuildLocator; }
public IServiceProvider ConfigureServices(IServiceCollection services) { var setting = new Appsettings(); ConfigurationBinder.Bind(_configuration.GetSection("Config"), setting); services.AddWebApi(_configuration, CygApplication.勘测端Api, "pdd_application", (unitOfWork, sqlQuery) => { }); services.AddSingleton(_configuration); services.AddSingleton <IHttpApiFactory <IResourceApiService>, HttpApiFactory <IResourceApiService> >(p => { return(new HttpApiFactory <IResourceApiService>().ConfigureHttpApiConfig(c => { c.HttpHost = new Uri(setting.ResourceApi); })); }); services.AddTransient(p => { var factory = p.GetRequiredService <IHttpApiFactory <IResourceApiService> >(); return(factory.CreateHttpApi()); }); services.AddSingleton <CapHandler>(); return(services.BuildDynamicProxyServiceProvider()); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { var builder = new ConfigurationBuilder() .AddGatewayConfiguration(); IConfigurationRoot root = builder.Build(); EdgeGatewayConfiguration config = new EdgeGatewayConfiguration(); ConfigurationBinder.Bind(root, config); CommunicationDirector.Create(config); //create the singleton instance if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(routes => { routes.MapRoute("default", "{controller=RtuOutput}/{action=Index}/{id?}"); }); app.Run(async(context) => { await context.Response.WriteAsync("Field Gateway Service Running..."); }); }
public void ListInNestedOptionBinding() { var input = new Dictionary <string, string> { { "ObjectList:0:ListInNestedOption:0", "00" }, { "ObjectList:0:ListInNestedOption:1", "01" }, { "ObjectList:1:ListInNestedOption:0", "10" }, { "ObjectList:1:ListInNestedOption:1", "11" }, { "ObjectList:1:ListInNestedOption:2", "12" }, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input)); var config = builder.Build(); var options = ConfigurationBinder.Bind <OptionsWithLists>(config); Assert.Equal(2, options.ObjectList.Count); Assert.Equal(2, options.ObjectList[0].ListInNestedOption.Count); Assert.Equal(3, options.ObjectList[1].ListInNestedOption.Count); Assert.Equal("00", options.ObjectList[0].ListInNestedOption[0]); Assert.Equal("01", options.ObjectList[0].ListInNestedOption[1]); Assert.Equal("10", options.ObjectList[1].ListInNestedOption[0]); Assert.Equal("11", options.ObjectList[1].ListInNestedOption[1]); Assert.Equal("12", options.ObjectList[1].ListInNestedOption[2]); }
public void AlreadyInitializedListBinding() { var input = new Dictionary <string, string> { { "AlreadyInitializedList:0", "val0" }, { "AlreadyInitializedList:1", "val1" }, { "AlreadyInitializedList:2", "val2" }, { "AlreadyInitializedList:x", "valx" } }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input)); var config = builder.Build(); var options = ConfigurationBinder.Bind <OptionsWithLists>(config); var list = options.AlreadyInitializedList; Assert.Equal(5, list.Count); Assert.Equal("This was here before", list[0]); Assert.Equal("val0", list[1]); Assert.Equal("val1", list[2]); Assert.Equal("val2", list[3]); Assert.Equal("valx", list[4]); }
public void NestedListsBinding() { var input = new Dictionary <string, string> { { "NestedLists:0:0", "val00" }, { "NestedLists:0:1", "val01" }, { "NestedLists:1:0", "val10" }, { "NestedLists:1:1", "val11" }, { "NestedLists:1:2", "val12" }, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input)); var config = builder.Build(); var options = ConfigurationBinder.Bind <OptionsWithLists>(config); Assert.Equal(2, options.NestedLists.Count); Assert.Equal(2, options.NestedLists[0].Count); Assert.Equal(3, options.NestedLists[1].Count); Assert.Equal("val00", options.NestedLists[0][0]); Assert.Equal("val01", options.NestedLists[0][1]); Assert.Equal("val10", options.NestedLists[1][0]); Assert.Equal("val11", options.NestedLists[1][1]); Assert.Equal("val12", options.NestedLists[1][2]); }
public void ListDictionary() { var input = new Dictionary <string, string> { { "ListDictionary:abc:0", "abc_0" }, { "ListDictionary:abc:1", "abc_1" }, { "ListDictionary:def:0", "def_0" }, { "ListDictionary:def:1", "def_1" }, { "ListDictionary:def:2", "def_2" } }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input)); var config = builder.Build(); var options = ConfigurationBinder.Bind <OptionsWithDictionary>(config); Assert.Equal(2, options.ListDictionary.Count); Assert.Equal(2, options.ListDictionary["abc"].Count); Assert.Equal(3, options.ListDictionary["def"].Count); Assert.Equal("abc_0", options.ListDictionary["abc"][0]); Assert.Equal("abc_1", options.ListDictionary["abc"][1]); Assert.Equal("def_0", options.ListDictionary["def"][0]); Assert.Equal("def_1", options.ListDictionary["def"][1]); Assert.Equal("def_2", options.ListDictionary["def"][2]); }
public static IServiceCollection AddCore(this IServiceCollection serviceCollection, string[] args) { var aliasMappings = typeof(BaseSettings) .GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(property => property.GetCustomAttribute <AliasesAttribute>() != null) .SelectMany(property => property.GetCustomAttribute <AliasesAttribute>()? .Aliases .Select(alias => (alias, property.Name))) .ToDictionary(pair => pair.alias, pair => pair.Name); var configuration = new ConfigurationBuilder() .AddCommandLine(args, aliasMappings) .Build(); var settings = new BaseSettings(); ConfigurationBinder.Bind(configuration, settings); serviceCollection .AddSingleton(new Settings(settings)) .AddSingleton(new Terms()) .AddSingleton(serviceProvider => new Services.ServiceResolver(serviceProvider)) .AddSingleton(serviceProvider => new Tasks.TaskResolver(serviceProvider)); return(serviceCollection); }
public void Configure(IApplicationBuilder app) { var appConfig = new AppConfiguration(); ConfigurationBinder.Bind(this.configuration, appConfig); app.UseOwin(x => x.UseNancy(opt => opt.Bootstrapper = new NancyBootstrapper(appConfig))); }
public void ConfigureServices(IServiceCollection services) { // Options services.AddOptions(); // Settings var globalSettings = new GlobalSettings(); ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), globalSettings); services.AddSingleton(s => globalSettings); services.Configure <BillingSettings>(Configuration.GetSection("BillingSettings")); // Stripe Billing StripeConfiguration.SetApiKey(globalSettings.StripeApiKey); // Repositories services.AddSqlServerRepositories(); // Context services.AddScoped <CurrentContext>(); // Services services.AddBaseServices(); services.AddDefaultServices(); // Mvc services.AddMvc(); }
private IEnumerable <string> GetRoleMappings(string role) { IEnumerable <string> identities = null; if (_roles.TryGetValue(role, out identities)) { return(identities); } // // Load identities identities = new List <string>(); ConfigurationBinder.Bind(_config.GetSection("security:users:" + role), identities); // // Copy on wright var roles = new Dictionary <string, IEnumerable <string> >(_roles); // Add role identities roles[role] = identities; // // Replace the original _roles = roles; return(identities); }
public EventBusSettings(IConfiguration configuration, ILogger logger) { _logger = logger; _configuration = configuration; this.ChangeToken = _configuration.GetReloadToken(); List <EventBusHostOptions> hostsOptions = new List <EventBusHostOptions>(); ConfigurationBinder.Bind(_configuration.GetSection("Hosts"), hostsOptions); this.Hosts = hostsOptions.ToDictionary(p => p.Name, p => p); List <ProductOptions> productOptions = new List <ProductOptions>(); ConfigurationBinder.Bind(_configuration.GetSection("Products"), productOptions); this.Products = productOptions.ToDictionary(p => p.Id, p => p); EventBusConfigOptions configOptions = new EventBusConfigOptions(); ConfigurationBinder.Bind(_configuration.GetSection("Options"), configOptions); this.Options = configOptions; _logger.LogInformation("init EventBus.Hosts:" + this.Hosts.ToJson()); _logger.LogInformation("init EventBus.Products:" + this.Products.ToJson()); _logger.LogInformation("init EventBus.Options:" + this.Options.ToJson()); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var appConfig = new AppConfiguration(); ConfigurationBinder.Bind(_config, appConfig); var idServerSettings = appConfig.IdentityServerConfidentialClientSettings; var levelSwitch = new LoggingLevelSwitch(); var logger = LogFactory.CreateLogger(levelSwitch, appConfig.ElasticSearchSettings, idServerSettings.ClientId); //Uncomment this when you want to protect the API using Fabric.Identity //app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions //{ // Authority = idServerSettings.Authority, // RequireHttpsMetadata = false, // ApiName = idServerSettings.ClientId //}); app.UseOwin() .UseFabricLoggingAndMonitoring(logger, () => Task.FromResult(true), levelSwitch) // Uncomment this when you want to protect the API by restricting the scopes allowed //.UseAuthPlatform(idServerSettings.Scopes) .UseNancy(opt => opt.Bootstrapper = new Bootstrapper(logger, appConfig)); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // needed to load configuration from appsettings.json services.AddOptions(); // needed to store rate limit counters and ip rules services.AddMemoryCache(); // configure ip rate limiting middle-ware services.Configure <IpRateLimitOptions>(Configuration.GetSection("IpRateLimiting")); services.Configure <IpRateLimitPolicies>(Configuration.GetSection("IpRateLimitPolicies")); services.AddSingleton <IIpPolicyStore, MemoryCacheIpPolicyStore>(); services.AddSingleton <IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); // configure client rate limiting middleware services.Configure <ClientRateLimitOptions>(Configuration.GetSection("ClientRateLimiting")); services.Configure <ClientRateLimitPolicies>(Configuration.GetSection("ClientRateLimitPolicies")); services.AddSingleton <IClientPolicyStore, MemoryCacheClientPolicyStore>(); //services.AddSingleton<IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); var opt = new ClientRateLimitOptions(); ConfigurationBinder.Bind(Configuration.GetSection("ClientRateLimiting"), opt); services.AddMvc().AddNewtonsoftJson(); // https://github.com/aspnet/Hosting/issues/793 // the IHttpContextAccessor service is not registered by default. // the clientId/clientIp resolvers use it. services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); // configure the resolvers services.AddSingleton <IRateLimitConfiguration, RateLimitConfiguration>(); }
public void Initalize(IConfiguration configuration) { _options = new MSBuildOptions(); ConfigurationBinder.Bind(configuration, _options); if (_environment.LogLevel < LogLevel.Information) { var buildEnvironmentInfo = MSBuildHelpers.GetBuildEnvironmentInfo(); _logger.LogDebug($"MSBuild environment: {Environment.NewLine}{buildEnvironmentInfo}"); } _packageDependencyChecker = new PackageDependencyChecker(_loggerFactory, _eventEmitter, _dotNetCli, _options); _loader = new ProjectLoader(_options, _environment.TargetDirectory, _propertyOverrides, _loggerFactory, _sdksPathResolver); _manager = new ProjectManager(_loggerFactory, _eventEmitter, _fileSystemWatcher, _metadataFileReferenceCache, _packageDependencyChecker, _loader, _workspace); var initialProjectPaths = GetInitialProjectPaths(); foreach (var projectFilePath in initialProjectPaths) { if (!File.Exists(projectFilePath)) { _logger.LogWarning($"Found project that doesn't exist on disk: {projectFilePath}"); continue; } _manager.QueueProjectUpdate(projectFilePath, allowAutoRestore: true); } }
public TOutput Create <TOutput>(IConfigurationSection input) where TOutput : new() { var output = new TOutput(); ConfigurationBinder.Bind(input, output); return(output); }
static GlobalSettingsFactory() { var configBuilder = new ConfigurationBuilder().AddUserSecrets <Bit.Api.Startup>(); var Configuration = configBuilder.Build(); ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), GlobalSettings); }
public void ConfigureServices(IServiceCollection services) { // Options services.AddOptions(); // Settings var iconsSettings = new IconsSettings(); ConfigurationBinder.Bind(Configuration.GetSection("IconsSettings"), iconsSettings); services.AddSingleton(s => iconsSettings); // Cache services.AddMemoryCache(options => { options.SizeLimit = iconsSettings.CacheSizeLimit; }); services.AddResponseCaching(); // Services services.AddSingleton <IDomainMappingService, DomainMappingService>(); services.AddSingleton <IIconFetchingService, IconFetchingService>(); // Mvc services.AddMvc(); }
public static void Main(string[] args) { var configBuilder = new ConfigurationBuilder().AddCommandLine(args); Configuration = configBuilder.Build(); string configFile = Configuration["config"]; if (configFile != null) { configBuilder.AddJsonFile(configFile, optional: false); Configuration = configBuilder.Build(); } ConfigurationBinder.Bind(Configuration.GetSection("startup"), _startupOptions); ConfigurationBinder.Bind(Configuration.GetSection("security"), _securityOptions); _loggerFactory .AddDebug() .AddConsole(LogLevel.Trace) .AddProvider(new FileLoggerProvider(_startupOptions.Name)); _logger = _loggerFactory.CreateLogger <Program>(); if (_startupOptions.Name != null) { _logger.LogInformation(Resources.Info_BrokerName, _startupOptions.Name); } var tlsConfig = new TlsConfiguration(_logger, _securityOptions); var httpsOptions = tlsConfig.GetHttpsOptions(Configuration); CreateWebHost(httpsOptions).Run(); }
public static void Main(string[] args) { var configBuilder = new ConfigurationBuilder().AddCommandLine(args); Configuration = configBuilder.Build(); string configFile = Configuration["config"]; if (configFile != null) { configBuilder.AddJsonFile(configFile, optional: false); Configuration = configBuilder.Build(); } ConfigurationBinder.Bind(Configuration.GetSection("startup"), _startupOptions); _loggerFactory .AddDebug() .AddConsole(LogLevel.Trace) .AddProvider(new FileLoggerProvider(_startupOptions.Name)); _logger = _loggerFactory.CreateLogger <Program>(); if (_startupOptions.Name != null) { _logger.LogInformation($"Broker name '{_startupOptions.Name}' assigned"); } CreateWebHost().Run(); }
static void Main(string[] args) { Console.WriteLine("Starting program..."); var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{environmentName}.json", optional: true, reloadOnChange: true) .Build(); var keys = new KontentKeys(); ConfigurationBinder.Bind(configuration.GetSection("KontentKeys"), keys); MovieListing movieListing = new MovieListing(keys); TaxonomyPredictor predictor = new TaxonomyPredictor(); TaxonomyImporter importer = new TaxonomyImporter(keys); var movies = movieListing.GetMovies(); foreach (Movie movie in movies.Result.Items) { if (movie.ListedIn.Count() < 1) { string formatted_prediction = predictor.GetTaxonomy(movie); var upsertResponse = importer.UpsertTaxonomy(movie, formatted_prediction).Result; Console.WriteLine(upsertResponse); } } Console.WriteLine("Program finished."); }
public void Initalize(IConfiguration configuration) { _scriptOptions = new ScriptOptions(); ConfigurationBinder.Bind(configuration, _scriptOptions); _scriptContext = new Lazy <ScriptContext>(() => _scriptContextProvider.CreateScriptContext(_scriptOptions)); _logger.LogInformation($"Detecting CSX files in '{_env.TargetDirectory}'."); // Nothing to do if there are no CSX files var allCsxFiles = _fileSystemHelper.GetFiles("**/*.csx").ToArray(); if (allCsxFiles.Length == 0) { _logger.LogInformation("Could not find any CSX files"); // Watch CSX files in order to add/remove them in workspace _fileSystemWatcher.Watch(CsxExtension, OnCsxFileChanged); return; } _logger.LogInformation($"Found {allCsxFiles.Length} CSX files."); // Each .CSX file becomes an entry point for it's own project // Every #loaded file will be part of the project too foreach (var csxPath in allCsxFiles) { AddToWorkspace(csxPath); } // Watch CSX files in order to add/remove them in workspace _fileSystemWatcher.Watch(CsxExtension, OnCsxFileChanged); }
// EasyNetQ Quick Start: https://github.com/EasyNetQ/EasyNetQ/wiki/Quick-Start // Management Console: http://localhost:15672/ // Naming Convention: https://derickbailey.com/2015/09/02/rabbitmq-best-practices-for-designing-exchanges-queues-and-bindings/ // Exchange: where the message are being published // Queue: where the exchgaes are being directed to // What I need: // // (YES) A message broker where I publish messages // (YES) A message broker where I subscribe to messages // When a consumer is processing a message, it can get a failure and process can shut down. // In those cases, message shouldn't be lost. // When a consumer is processing a message, // it can get a temporary failure. In those cases, the message // should be retriable. // More resources: // - Docker RabbitMQ cluster: https://github.com/bijukunjummen/docker-rabbitmq-cluster public static void Main(string[] args) { Console.WriteLine("Waiting for 5s to let the RabbitMQ start up"); Thread.Sleep(5000); var config = ConfigBuilder.Build(); var settings = new RabbitMQSettings(); ConfigurationBinder.Bind(config.GetSection("RabbitMQ"), settings); Console.WriteLine($"Starting the pub/sub sample on '{settings.Host}' rabbitmq instance."); var factory = new ConnectionFactory { HostName = settings.Host }; var conn = factory.CreateConnection(); var channel = conn.CreateModel(); channel.ExchangeDeclare(ExchangeName, ExchangeType.Fanout, false, false); channel.QueueDeclare(QueueName, false, false, false, null); channel.QueueDeclare(QueueName2, false, false, false, null); channel.QueueBind(QueueName, ExchangeName, RoutingKey, null); channel.QueueBind(QueueName2, ExchangeName, RoutingKey, null); var pubTask = new Publisher(conn).Start(); var subTask = new Subscriber(conn, QueueName).Start(); var subTask2 = new Subscriber(conn, QueueName2).Start(); Task.WhenAll(pubTask, subTask, subTask2).Wait(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <MyAppSettings>(Configuration.GetSection("MyAppSettings"));//##Dependency Injection //services.AddScoped<CustomAuthorization>(); //## IF WE NEED CONTROLLER LEVEL Authorization //#### Entity Framework : ##### var appSettings = new MyAppSettings(); ConfigurationBinder.Bind(Configuration.GetSection("MyAppSettings"), appSettings); services.AddSingleton <MyAppSettings>(); services.AddDbContext <MyDbContext>(options => options.UseSqlServer(appSettings.ConnectionString)); //#### Entity Framework ##### //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // Application level Autorization services.AddMvc( x => { x.Filters.Add <CustomAuthorization>(); //## added Custom Authorization application level //x.Filters.Add<CustomExceptionFilter>(); //## added Filter based exception or use Middleware } ).SetCompatibilityVersion(CompatibilityVersion.Version_2_2); }
public override void Configure(IFunctionsHostBuilder functionsHostBuilder) { var configuration = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); var settings = new Settings(); ConfigurationBinder.Bind(configuration, settings); functionsHostBuilder.Services .AddSingleton(_ => settings); functionsHostBuilder.Services .AddLogging(); var applicationRootPath = functionsHostBuilder.GetContext().ApplicationRootPath; functionsHostBuilder.Services .AddKimmel(applicationRootPath) .AddKimmelKontentActivation() .AddKimmelExport() .AddSingleton(_ => settings); functionsHostBuilder.Services .AddSingleton <IKontentApiTracker, KontentApiTracker>() .AddSingleton <IKontentRateLimiter, KontentRateLimiter>() .AddHttpClient <IKontentStore, KontentStore>(); }
/// <summary> /// Binds an <see cref="IConfiguration"/> to an <see cref="ExceptionalSettings"/> object. /// This happens with a normal .Bind() followed by the complex type mappings manually. /// </summary> /// <param name="config">The <see cref="IConfigurationSection"/> to bind.</param> /// <param name="settings">The <see cref="ExceptionalSettings"/> to bind to.</param> public static void Bind(this IConfiguration config, ExceptionalSettings settings) { // Bind the simple types (almost everything) ConfigurationBinder.Bind(config, settings); // because we overrode .Bind() here // Now, explicitly bind the complex types var dataIncludePattern = config.GetValue <string>(nameof(ExceptionalSettings.DataIncludeRegex)); if (!string.IsNullOrEmpty(dataIncludePattern)) { settings.DataIncludeRegex = new Regex(dataIncludePattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline); } var ignoreRegexes = config.GetSection(nameof(ExceptionalSettings.Ignore)) .GetSection(nameof(ExceptionalSettingsBase.IgnoreSettings.Regexes)) .AsEnumerable(); foreach (var ir in ignoreRegexes) { if (ir.Value != null) { settings.Ignore.Regexes.Add(new Regex(ir.Value, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline)); } } // If email is configured, hook it up if (settings.Email.ToAddress.HasValue()) { settings.Register(new EmailNotifier(settings.Email)); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddOptions(); services.AddMemoryCache(); //configure ip rate limiting middle-ware services.Configure <IpRateLimitOptions>(Configuration.GetSection("IpRateLimiting")); services.Configure <IpRateLimitPolicies>(Configuration.GetSection("IpRateLimitPolicies")); services.AddSingleton <IIpPolicyStore, MemoryCacheIpPolicyStore>(); services.AddSingleton <IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); //configure client rate limiting middleware services.Configure <ClientRateLimitOptions>(Configuration.GetSection("ClientRateLimiting")); services.Configure <ClientRateLimitPolicies>(Configuration.GetSection("ClientRateLimitPolicies")); services.AddSingleton <IClientPolicyStore, MemoryCacheClientPolicyStore>(); //services.AddSingleton<IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); //configure client rate limiting middleware services.Configure <UrlRateLimitOptions>(Configuration.GetSection("UrlRateLimiting")); //services.AddSingleton<IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>(); var opt = new ClientRateLimitOptions(); ConfigurationBinder.Bind(Configuration.GetSection("ClientRateLimiting"), opt); // Add framework services. services.AddMvc(); }
public void Configuration(IAppBuilder app) { var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Add(new WebConfigProvider()) .Build(); var _certificateService = new WindowsCertificateService(); var decryptionService = new DecryptionService(_certificateService); var appConfig = new AppConfiguration(); ConfigurationBinder.Bind(configuration, appConfig); var provider = new IdentityProviderSearchServiceConfigurationProvider(appConfig.EncryptionCertificateSettings, decryptionService); provider.GetAppConfiguration(appConfig); var logger = LogFactory.CreateTraceLogger(new LoggingLevelSwitch(), appConfig.ApplicationInsights); logger.Information("IdentityProviderSearchService is starting up..."); appConfig.ConfigureIdentityServiceUrl(); app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions { Authority = appConfig.IdentityServerConfidentialClientSettings.Authority, RequiredScopes = appConfig.IdentityServerConfidentialClientSettings.Scopes }); app.UseNancy(opt => opt.Bootstrapper = new Bootstrapper(appConfig, logger)); app.UseStageMarker(PipelineStage.MapHandler); }
static void Main(string[] args) { // Build application configuration ConfigurationBuilder builder = new ConfigurationBuilder(); builder.SetBasePath(Environment.CurrentDirectory); builder.AddJsonFile("appsettings.json"); var configuration = builder.Build(); // Setup logging var factory = new LoggerFactory(); factory.AddConsole(configuration.GetSection("Logging")); // Build Eureka clients config from configuration var clientConfig = new EurekaClientConfig(); ConfigurationBinder.Bind(configuration.GetSection("eureka:client"), clientConfig); // Build Eureka instance info config from configuration var instConfig = new EurekaInstanceConfig(); ConfigurationBinder.Bind(configuration.GetSection("eureka:instance"), instConfig); // Initialize ApplicationManager with instance configuration ApplicationInfoManager.Instance.Initialize(instConfig, factory); // Create the Eureka client, the Application is registered and renewed with registry var client = new DiscoveryClient(clientConfig, null, factory); // Hang and keep renewing the registration Console.ReadLine(); }
public void A_configuration_object_is_bound() { const string json = @"{ Value: [47,22] }"; _binder = ConfigurationBinderFactory.New(x => { x.AddJson(json); }); _configuration = _binder.Bind<ClassWithArray>(); }
public void A_configuration_object_is_bound() { const string json = @"{ Inner: { Value: 47 } }"; _binder = ConfigurationBinderFactory.New(x => { x.AddJson(json); }); _configuration = _binder.Bind<OuterLevel>(); }
public void A_configuration_object_is_bound() { const string json = @"{ Name: ""phatboyg"", Password: ""default""}"; var jsonStream = new MemoryStream(Encoding.UTF8.GetBytes(json)); string commandLineText = "-password:really_long_one --secure"; _binder = ConfigurationBinderFactory.New(x => { // least specific to most specific // I assume that is reasonable x.AddJson(jsonStream); x.AddCommandLine(commandLineText); }); _configuration = _binder.Bind<IMyConfiguration>(); }