Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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...");
            });
        }
Ejemplo n.º 5
0
        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]);
        }
Ejemplo n.º 6
0
        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]);
        }
Ejemplo n.º 7
0
        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]);
        }
Ejemplo n.º 8
0
        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]);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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)));
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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());
        }
Ejemplo n.º 14
0
        // 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));
        }
Ejemplo n.º 15
0
        // 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>();
        }
Ejemplo n.º 16
0
        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);
            }
        }
Ejemplo n.º 17
0
        public TOutput Create <TOutput>(IConfigurationSection input) where TOutput : new()
        {
            var output = new TOutput();

            ConfigurationBinder.Bind(input, output);
            return(output);
        }
Ejemplo n.º 18
0
        static GlobalSettingsFactory()
        {
            var configBuilder = new ConfigurationBuilder().AddUserSecrets <Bit.Api.Startup>();
            var Configuration = configBuilder.Build();

            ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), GlobalSettings);
        }
Ejemplo n.º 19
0
        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();
        }
Ejemplo n.º 20
0
        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();
        }
Ejemplo n.º 21
0
        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();
        }
Ejemplo n.º 22
0
        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.");
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
        // 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();
        }
Ejemplo n.º 25
0
        // 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);
        }
Ejemplo n.º 26
0
        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));
            }
        }
Ejemplo n.º 28
0
        // 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();
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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();
        }
Ejemplo n.º 31
0
        public void A_configuration_object_is_bound()
        {
            const string json = @"{ Value: [47,22] }";

            _binder = ConfigurationBinderFactory.New(x => { x.AddJson(json); });

            _configuration = _binder.Bind<ClassWithArray>();
        }
Ejemplo n.º 32
0
		public void A_configuration_object_is_bound()
		{
			const string json = @"{ Inner: { Value: 47 } }";

			_binder = ConfigurationBinderFactory.New(x => { x.AddJson(json); });

			_configuration = _binder.Bind<OuterLevel>();
		}
Ejemplo n.º 33
0
		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>();
		}