/// <summary>
        /// Creates and configures the application configuration, where key value pair settings are stored. See
        /// http://docs.asp.net/en/latest/fundamentals/configuration.html
        /// http://weblog.west-wind.com/posts/2015/Jun/03/Strongly-typed-AppSettings-Configuration-in-ASPNET-5
        /// </summary>
        /// <param name="hostingEnvironment">The environment the application is running under. This can be Development, 
        /// Staging or Production by default.</param>
        /// <returns>A collection of key value pair settings.</returns>
        private static IConfiguration ConfigureConfiguration(IHostingEnvironment hostingEnvironment)
        {
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            // Add configuration from the config.json file.
            configurationBuilder.AddJsonFile("config.json");

            // Add configuration from an optional config.development.json, config.staging.json or 
            // config.production.json file, depending on the environment. These settings override the ones in the 
            // config.json file.
            configurationBuilder.AddJsonFile($"config.{hostingEnvironment.EnvironmentName}.json", optional: true);

            // This reads the configuration keys from the secret store. This allows you to store connection strings
            // and other sensitive settings, so you don't have to check them into your source control provider. See 
            // http://go.microsoft.com/fwlink/?LinkID=532709 and
            // http://docs.asp.net/en/latest/security/app-secrets.html
            configurationBuilder.AddUserSecrets();

            // Add configuration specific to the Development, Staging or Production environments. This config can 
            // be stored on the machine being deployed to or if you are using Azure, in the cloud. These settings 
            // override the ones in all of the above config files.
            // Note: To set environment variables for debugging navigate to:
            // Project Properties -> Debug Tab -> Environment Variables
            // Note: To get environment variables for the machine use the following command in PowerShell:
            // $env:[VARIABLE_NAME]
            // Note: To set environment variables for the machine use the following command in PowerShell:
            // $env:[VARIABLE_NAME]="[VARIABLE_VALUE]"
            // Note: Environment variables use a colon separator e.g. You can override the site title by creating a 
            // variable named AppSettings:SiteTitle. See 
            // http://docs.asp.net/en/latest/security/app-secrets.html
            configurationBuilder.AddEnvironmentVariables();

            return configurationBuilder.Build();
        }
 public void Main(string[] args)
 {            
     Log("started with args: "+String.Join(" ", args));
                
     var configBuilder = new ConfigurationBuilder();             
         configBuilder.AddJsonFile("appsettings.json");
                                           
     Configuration = configBuilder.Build();
                 
     if (args.Contains("--windows-service"))
     {
         try
         {                    
             Log("WWWService Main()");
             Run(this); 
             return;   
         }
         catch(Exception x)
         {                    
             Log("WWWService Main() Exception: "+ x.Message);
         }
     }
     
     OnStart(null);
     Console.ReadLine();
     OnStop();                      
 }
예제 #3
1
        static HalibutLimits()
        {
            #if NET40
            var settings = System.Configuration.ConfigurationManager.AppSettings;

            var fields = typeof (HalibutLimits).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
            foreach (var field in fields)
            {
                var value = settings.Get("Halibut." + field.Name);
                if (string.IsNullOrWhiteSpace(value)) continue;
                var time = TimeSpan.Parse(value);
                field.SetValue(null, time);
            }
            #else
            // should be able to use Directory.GetCurrentDirectory()
            // to get the working path, but the nunit test runner
            // runs from another directory. Go with dll location for now.
            var directory = Path.GetDirectoryName(new Uri(typeof(HalibutLimits).GetTypeInfo().Assembly.CodeBase).LocalPath);
            var builder = new ConfigurationBuilder();
            builder.SetBasePath(directory);
            builder.AddJsonFile("appsettings.json", optional: true);
            var halibutConfig = builder.Build();

            var fields = typeof(HalibutLimits).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
            foreach (var field in fields)
            {
                var value = halibutConfig["Halibut:" + field.Name];
                if (string.IsNullOrWhiteSpace(value)) continue;
                var time = TimeSpan.Parse(value);
                field.SetValue(null, time);
            }
            #endif
        }
예제 #4
1
        //<inheritdoc/>
        public IEnumerable<Tenant> GetEnabledTenants()
        { 
            var fileProvider = _hostingEnvironment.ContentRootFileProvider;

            var tenantFolders = fileProvider
                .GetDirectoryContents("tenants")
                .Where(info => info.IsDirectory);

            foreach (var tenantFolder in tenantFolders)
            {
                var tenantFileName = "tenant.json";
                var tenantDirectoryPath = Path.Combine("tenants", tenantFolder.Name);
                var tenantFilePath = Path.Combine(tenantDirectoryPath, tenantFileName);
                var tenantFileInfo = fileProvider.GetFileInfo(tenantFilePath);
                if (tenantFileInfo.Exists)
                {
                    var builder = new ConfigurationBuilder();
                    builder.SetFileProvider(fileProvider);
                    builder.AddJsonFile(tenantFilePath);
                    var config = builder.Build();

                    var tenant = new Tenant
                    {
                        TenantId = tenantFolder.Name,
                        Configuration = config,
                        Identities = config.GetSection("Identities").GetChildren().Select(t => t.Value),
                        Extensions = config.GetSection("Extensions").GetChildren().Select(t => t.Value),
                        Path = tenantFolder.PhysicalPath
                    };

                    yield return tenant;
                }
            }
        }
예제 #5
0
        /// <summary>
        /// 1. Loads configurations
        /// </summary>
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder();

            // general config file
            builder.AddJsonFile("config.json");
            // environment-specific config
            builder.AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);
            // sensitive information config
            if (env.IsDevelopment()) builder.AddUserSecrets();

            Configuration = builder.Build();
        }
예제 #6
0
        public Functional()
        {
            var builder = new ConfigurationBuilder();
            builder.AddJsonFile("config.json");
            builder.AddJsonFile("config.private.json", true);
            var configuration = builder.Build();

            var uri = new Uri(configuration["ServerCredentialUri"]);
            var username = configuration["ServerCredentialUsername"];
            var password = configuration["ServerCredentialPassword"];

            _serverCredential = new ServerCredential(uri, username, password);
        }
예제 #7
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();

            services.AddSingleton <HttpClient>();

            var configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            configurationBuilder.SetBasePath(_env.ContentRootPath);
            configurationBuilder.AddJsonFile("urls.json");
            configurationBuilder.AddJsonFile("appsettings.json");
            var config       = configurationBuilder.Build();
            var gameStateUrl = config.GetSection("urls")["GameStateApi"];

            services.AddOptions();
            services.Configure <DemoOptions>(config);
            services.Configure <GameDuration>(config);

            services.AddSingleton <IGameStateClient, NullGameClient>();
            services.AddTransient <INewGameFactory, HardCodedGameFactory>();
            services.AddTransient <INewRegionsFactory, HardCodedRegionsFactory>();

            services.AddSignalR(
                o =>
            {
                o.Hubs.EnableDetailedErrors = true;
            });

            services.AddSingleton <ActorSystem>(
                x =>
            {
                var system = ActorSystem.Create("BlockWars");
                system.AddDependencyResolver(new ActorContainer(x, system));
                return(system);
            });

            services.AddSingleton <IServerManager, AkkaAdapter>();
            services.AddTransient <AccomplishmentManager, AccomplishmentManager>();

            services.AddTransient <GameActor, GameActor>();
            services.AddSingleton <ServerSupervisor, ServerSupervisor>();
            services.AddSingleton <Broadcaster, Broadcaster>();
            services.AddTransient <DemoActor, DemoActor>();
            services.AddTransient <GamePersistenceActor, GamePersistenceActor>();
            services.AddTransient <PlayerStatsActor, PlayerStatsActor>();
            services.AddSingleton <PlayerSupervisor, PlayerSupervisor>();
            services.AddTransient <PlayerActor, PlayerActor>();
            services.AddSingleton <LeaderboardActor, LeaderboardActor>();
            services.AddSingleton <LeaderboardBuffer, LeaderboardBuffer>();
        }
예제 #8
0
 public Startup(IHostingEnvironment env)
 {
     // Setup configuration sources.
     var builder = new ConfigurationBuilder().SetBasePath(env.ContentRootPath);
     if (env.IsDevelopment())
     {
         builder.AddJsonFile("config.json",true,true);
     }
     else
     {
         builder.AddJsonFile("/etc/bahamut/website.json",true,true);
     }
     builder.AddEnvironmentVariables();
     Configuration = builder.Build();
 }
예제 #9
0
        public static IConfiguration BuildLightcoreConfiguration(this IApplicationEnvironment appEnv, IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder().SetBasePath(appEnv.ApplicationBasePath);

            // Add main config file
            builder.AddJsonFile("lightcore.json");

            // Add optional environment specific config file, will be merged and duplicates takes precedence
            builder.AddJsonFile($"lightcore.{env.EnvironmentName}.json", true);

            // Add environment variables, will be merged and duplicates takes precedence - Set LightcoreConfig:ServerUrl in Azure for example...
            builder.AddEnvironmentVariables();

            return builder.Build();
        }
        public ConfigurationResult Build(Action <IConfigurationBuilder> additionalSetup = null)
        {
            try
            {
                var configBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
                                    .SetBasePath(AppContext.BaseDirectory)
                                    .AddEnvironmentVariables("OMNISHARP_");

                if (_environment.AdditionalArguments?.Length > 0)
                {
                    configBuilder.AddCommandLine(_environment.AdditionalArguments);
                }

                // Use the global omnisharp config if there's any in the shared path
                configBuilder.CreateAndAddGlobalOptionsFile(_environment);

                // Use the local omnisharp config if there's any in the root path
                configBuilder.AddJsonFile(
                    new PhysicalFileProvider(_environment.TargetDirectory).WrapForPolling(),
                    Constants.OptionsFile,
                    optional: true,
                    reloadOnChange: true);

                // bootstrap additional host configuration at the end
                additionalSetup?.Invoke(configBuilder);

                var config = configBuilder.Build();
                return(new ConfigurationResult(config));
            }
            catch (Exception ex)
            {
                return(new ConfigurationResult(ex));
            }
        }
        public void SpringCloudConfigServer_ReturnsExpectedDefaultData()
        {

            // Arrange 
            var appsettings = @"
{
    'spring': {
      'application': {
        'name' : 'foo'
      },
      'cloud': {
        'config': {
            'uri': 'http://localhost:8888',
            'env': 'development'
        }
      }
    }
}";

            var path = ConfigServerTestHelpers.CreateTempFile(appsettings);
            var configurationBuilder = new ConfigurationBuilder();
            var hostingEnv = new HostingEnvironment();
            configurationBuilder.AddJsonFile(path);

            // Act and Assert (expects Spring Cloud Config server to be running)
            configurationBuilder.AddConfigServer(hostingEnv);
            IConfigurationRoot root = configurationBuilder.Build();

            Assert.Equal("spam", root["bar"]);
            Assert.Equal("bar", root["foo"]);
            Assert.Equal("Spring Cloud Samples", root["info:description"]);
            Assert.Equal("https://github.com/spring-cloud-samples", root["info:url"]);
            Assert.Equal("http://localhost:8761/eureka/", root["eureka:client:serviceUrl:defaultZone"]);

        }
예제 #12
0
파일: Program.cs 프로젝트: Microsoft/RTVS
        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);

            Uri uri = GetServerUri(Configuration);
            try {
                CreateWebHost(httpsOptions).Run();
            } catch(AggregateException ex) when (ex.IsPortInUseException()) {
                _logger.LogError(0, ex.InnerException, Resources.Error_ConfiguredPortNotAvailable, uri?.Port);
            }
        }
예제 #13
0
		public Startup()
		{
			var cb = new ConfigurationBuilder();
			cb.AddJsonFile("appSettings.json");
			_configuration = cb.Build();

		}
예제 #14
0
        public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            // Setup configuration sources.
            var builder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

            if (env.IsEnvironment("Development"))
            {
                // This reads the configuration keys from the secret store.
                // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
                builder.AddUserSecrets();
            }

            // this file name is ignored by gitignore
            // so you can create it and use on your local dev machine
            // remember last config source added wins if it has the same settings
            builder.AddJsonFile("appsettings.local.overrides.json", optional: true);

            // most common use of environment variables would be in azure hosting
            // since it is added last anything in env vars would trump the same setting in previous config sources
            // so no risk of messing up settings if deploying a new version to azure
            builder.AddEnvironmentVariables();
            Configuration = builder.Build();

            //env.MapPath
            appBasePath = appEnv.ApplicationBasePath;
        }
예제 #15
0
        public int Main(string[] args)
        {
            var builder = new ConfigurationBuilder();
            //builder.Add(new JsonConfigurationSource("config.json"));
            builder.AddJsonFile("config.json");
            var config = builder.Build();
            var webjobsConnectionString = config["Data:AzureWebJobsStorage:ConnectionString"];
            var dbConnectionString = config["Data:DefaultConnection:ConnectionString"];

            if (string.IsNullOrWhiteSpace(webjobsConnectionString))
            {
                Console.WriteLine("The configuration value for Azure Web Jobs Connection String is missing.");
                return 10;
            }

            if (string.IsNullOrWhiteSpace(dbConnectionString))
            {
                Console.WriteLine("The configuration value for Database Connection String is missing.");
                return 10;
            }

            var jobHostConfig = new JobHostConfiguration(webjobsConnectionString);
            var host = new JobHost(jobHostConfig);

            host.RunAndBlock();
            return 0;
        }
        public IConfiguration Build()
        {
            Validate();
            IConfigurationBuilder builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            builder.AddJsonFile(Path.Combine(_filePath, _fileName));
            return(builder.Build());
        }
예제 #17
0
        public static void CreateOrderProcessTask([Queue("orders")] CloudQueue orderQueue)
        {
            Console.WriteLine("Starting Create Order Process Task");
            try
            {
                var builder = new ConfigurationBuilder();
                //builder.Add(new JsonConfigurationSource("config.json"));
                builder.AddJsonFile("config.json");
                var config = builder.Build();
                var connectionString = config["Data:DefaultConnection:ConnectionString"];

                using (var context = new PartsUnlimitedContext(connectionString))
                {
                    var orders = context.Orders.Where(x => !x.Processed).ToList();
                    Console.WriteLine("Found {0} orders to process", orders.Count);

                    foreach (var order in orders)
                    {
                        var productIds = context.OrderDetails.Where(x => x.OrderId == order.OrderId).Select(x => x.ProductId).ToList();
                        var items = context.Products
                            .Where(x => productIds.Contains(x.ProductId))
                            .ToList();

                        var orderItems = items.Select(
                                x => new LegacyOrderItem
                                {
                                    SkuNumber = x.SkuNumber,
                                    Price = x.Price
                                }).ToList();

                        var queueOrder = new LegacyOrder
                        {
                            Address = order.Address,
                            Country = order.Country,
                            City = order.City,
                            Phone = order.Phone,
                            CustomerName = order.Name,
                            OrderDate = order.OrderDate,
                            PostalCode = order.PostalCode,
                            State = order.State,
                            TotalCost = order.Total,
                            Discount = order.Total,
                            Items = orderItems
                        };
                        var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
                        var message = JsonConvert.SerializeObject(queueOrder, settings);
                        orderQueue.AddMessage(new CloudQueueMessage(message));
                        order.Processed = true;
                    }
                    context.SaveChanges();
                    Console.WriteLine("Orders successfully processed.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #18
0
        private static IConfiguration ConfigureConfiguration(IHostingEnvironment hostingEnvironment)
        {
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
            configurationBuilder.SetBasePath(hostingEnvironment.ContentRootPath);
            configurationBuilder.AddJsonFile("config.json", optional: true);
            configurationBuilder.AddEnvironmentVariables();

            return configurationBuilder.Build();
        }
예제 #19
0
파일: Startup.cs 프로젝트: No-ops/WarArena
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940

        public Startup()
        {
            var builder = new ConfigurationBuilder();
            builder
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();

            Configuration = builder.Build();
        }
 public RecaptchaTagHelper() : base()
 {
     var builder = new ConfigurationBuilder();
     builder.AddJsonFile("appsettings.json");
     builder.AddEnvironmentVariables();
     var config = builder.Build();
     secret = config["RecaptchaOptions:Secret"];
     siteKey = config["RecaptchaOptions:SiteKey"];
 }
예제 #21
0
        public Startup(IApplicationEnvironment appEnv, IHostingEnvironment env)
        {

            var Builder = new ConfigurationBuilder()
                .SetBasePath(appEnv.ApplicationBasePath);
            if (env.IsDevelopment())
            {
                Builder.AddJsonFile("config.json")
                .AddEnvironmentVariables();
            }
            else
            {
                Builder.AddJsonFile("config-prod.json")
                .AddEnvironmentVariables();
            }
            
            Configuration = Builder.Build();
        }
예제 #22
0
 public Startup(IHostingEnvironment env, IApplicationEnvironment app)
 {
     ConfigurationBuilder builder = new ConfigurationBuilder();
     builder.SetBasePath(app.ApplicationBasePath);
     builder.AddJsonFile("appsettings.json");
     IConfigurationRoot config = builder.Build();
     AppSettings.ConnectionString = config.Get<string>
            ("Data:DefaultConnection:ConnectionString");
 }
        private IConfiguration GetConfiguration()
        {
            var configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            string directoryName = Path.GetDirectoryName(typeof(ConfigurationDriver).Assembly.Location);

            configurationBuilder.AddJsonFile(Path.Combine(directoryName, @"test-appsettings.json"));

            return(configurationBuilder.Build());
        }
예제 #24
0
 private static IConfigurationRoot GetConfigurationRoot()
 {
     var builder = new ConfigurationBuilder();
     var testFolder = new DirectoryInfo(Directory.GetCurrentDirectory()).FullName;
     builder.SetBasePath(testFolder);
     //use json file to configure settings. See http://docs.asp.net/en/latest/fundamentals/configuration.html for more detail on CongifurationBuilder
     builder.AddJsonFile("appsettings.json");
     var config = builder.Build();
     return config;
 }
예제 #25
0
파일: Program.cs 프로젝트: laball/demo
        private static void BuildByJson()
        {
            var config = new ConfigurationBuilder();
            config.AddJsonFile("autofac.json");//need Microsoft.Extensions.Configuration.Json

            var module = new ConfigurationModule(config.Build());
            var builder = new ContainerBuilder();
            builder.RegisterModule(module);

            container = builder.Build();
        }
예제 #26
0
        public static void Main(string[] args)
        {
            Microsoft.Extensions.Configuration.ConfigurationBuilder bconfig = (Microsoft.Extensions.Configuration.ConfigurationBuilder)(new Microsoft.Extensions.Configuration.ConfigurationBuilder());
            //if (args != null)bconfig.AddCommandLine(args).Build();
            bconfig.SetBasePath(BasePath);
            bconfig.AddJsonFile(AppName + ".json", optional: true, reloadOnChange: true);
            _Config = bconfig.Build();

            Start(args);
            Config_OnChanged = Config.GetReloadToken().RegisterChangeCallback(Call_Config_OnChanged, new object[] { Config });
        }
예제 #27
0
        public virtual void LoadConfiguration()
        {
            if (String.IsNullOrEmpty(FullLoadedFileName))
            {
                throw new Exception("The file hasn't been defined, yet, so we can't load an empty definition");
            }

            IConfigurationBuilder configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder().SetBasePath(@Directory.GetCurrentDirectory());

            LoadedConfiguration = configurationBuilder
                                  .AddJsonFile(FullLoadedFileName, optional: true, reloadOnChange: true).Build();
        }
예제 #28
0
        public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            var builder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json");

            // this file name is ignored by gitignore
            // so you can create it and use on your local dev machine
            // remember last config source added wins if it has the same settings
            builder.AddJsonFile("appsettings.local.overrides.json", optional: true);

            Configuration = builder.Build();
        }
예제 #29
0
        /// <summary>
        /// get IConfigurationRoot from rpclite.config.json
        /// </summary>
        /// <param name="basePath"></param>
        /// <returns></returns>
        public static IConfigurationRoot GetConfiguration(string basePath)
        {
            var configBuilder = new ConfigurationBuilder();

            if (!string.IsNullOrWhiteSpace(basePath))
                configBuilder.SetBasePath(basePath);

            configBuilder
                .AddJsonFile("rpclite.config.json", true);

            var config = configBuilder.Build();
            return config;
        }
예제 #30
0
        public void NonDefaultSectionTest()
        {
            var builder = new ConfigurationBuilder();
            builder.AddJsonFile("./TestFiles/NonDefaultSectionTest.json");

            IConfiguration config = builder.Build();
            var options = config.GetAWSOptions("AWSNonStandard");

            Assert.Equal(RegionEndpoint.EUCentral1, options.Region);

            IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();
            Assert.NotNull(client);
            Assert.Equal(RegionEndpoint.EUCentral1, client.Config.RegionEndpoint);
        }
예제 #31
0
        public BotCredentials()
        {
            _log = LogManager.GetCurrentClassLogger();

            try { File.WriteAllText("./credentials_example.json", JsonConvert.SerializeObject(new CredentialsModel(), Formatting.Indented)); } catch { }
            if(!File.Exists(credsFileName))
                _log.Warn($"credentials.json is missing. Attempting to load creds from environment variables prefixed with 'NadekoBot_'. Example is in {Path.GetFullPath("./credentials_example.json")}");
            try
            {
                var configBuilder = new ConfigurationBuilder();
                configBuilder.AddJsonFile(credsFileName, true)
                    .AddEnvironmentVariables("NadekoBot_");

                var data = configBuilder.Build();

                Token = data[nameof(Token)];
                if (string.IsNullOrWhiteSpace(Token))
                    throw new ArgumentNullException(nameof(Token), "Token is missing from credentials.json or Environment varibles.");
                OwnerIds = data.GetSection("OwnerIds").GetChildren().Select(c => ulong.Parse(c.Value)).ToArray();
                LoLApiKey = data[nameof(LoLApiKey)];
                GoogleApiKey = data[nameof(GoogleApiKey)];
                MashapeKey = data[nameof(MashapeKey)];
                OsuApiKey = data[nameof(OsuApiKey)];

                int ts = 1;
                int.TryParse(data[nameof(TotalShards)], out ts);
                TotalShards = ts < 1 ? 1 : ts;

                ulong clId = 0;
                ulong.TryParse(data[nameof(ClientId)], out clId);
                ClientId = clId;

                SoundCloudClientId = data[nameof(SoundCloudClientId)];
                CarbonKey = data[nameof(CarbonKey)];
                var dbSection = data.GetSection("db");
                Db = new DBConfig(string.IsNullOrWhiteSpace(dbSection["Type"]) 
                                ? "sqlite" 
                                : dbSection["Type"], 
                            string.IsNullOrWhiteSpace(dbSection["ConnectionString"]) 
                                ? "Filename=./data/NadekoBot.db" 
                                : dbSection["ConnectionString"]);
            }
            catch (Exception ex)
            {
                _log.Fatal(ex.Message);
                _log.Fatal(ex);
                throw;
            }
            
        }
예제 #32
0
        /// <summary>
        /// Read configuration files and build application configuration
        /// </summary>
        /// <param name="envName"></param>
        /// <returns></returns>
        protected virtual IConfiguration BuildConfiguration(string envName)
        {
            IConfigurationBuilder builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
                                            .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            if (!String.IsNullOrEmpty(envName))
            {
                string cfgName = $"appsettings.{envName}.json";
                builder.AddJsonFile(cfgName, optional: true, reloadOnChange: true);
            }

            return(builder.Build());
        }
예제 #33
0
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder();
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                builder.AddJsonFile("appsettings.windows.json");
            }
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                builder.AddJsonFile("appsettings.linux.json");
            }
            else
            {
                throw new NotSupportedException("MapGuide doesn't work on this platform");
            }

            // Set up configuration sources.
            builder.AddEnvironmentVariables();
            Configuration = builder.Build();

            string mgWebConfigPath = Configuration["MapGuide.WebConfigPath"];
            MapGuideApi.MgInitializeWebTier(mgWebConfigPath);
        }
예제 #34
0
        public void ConfigureServices(IServiceCollection services)
        {
            var configBuilder = new ConfigurationBuilder();
            configBuilder.AddJsonFile("config.json");
            configBuilder.AddEnvironmentVariables();
            this.Configuration = configBuilder.Build();

            services.AddOptions();
            services.Configure<DotkubeOptions>(this.Configuration);

            services.AddTransient<IDatabase>((IServiceCollection) => configureRedis());
            services.AddDbContext<DataContext>(options => configureDatabase(options));
            services.AddMvcCore().AddJsonFormatters();
            services.AddCors();
        }
예제 #35
0
파일: Program.cs 프로젝트: dvincent/Docs
        public static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder();
            builder.AddJsonFile("appsettings.json");
            builder.AddEnvironmentVariables();
            var config = builder.Build();

            builder.AddEntityFramework(options => options.UseSqlServer(config["Data:DefaultConnection:ConnectionString"]));
            config = builder.Build();

            Console.WriteLine("key1={0}", config["key1"]);
            Console.WriteLine("key2={0}", config["key2"]);
            Console.WriteLine("key3={0}", config["key3"]);

        }
        private void RegisterPublisher(IServiceCollection services)
        {
            var configurationBuilder = new ConfigurationBuilder();
            var path = Path.Combine(configurationBuilder.GetBasePath(), "glimpse.json");

            if (File.Exists(path))
            {
                var configuration = configurationBuilder.AddJsonFile("glimpse.json").Build();
                services.Configure<ResourceOptions>(configuration.GetSection("resources"));

                services.Replace(new ServiceDescriptor(typeof(IMessagePublisher), typeof(HttpMessagePublisher), ServiceLifetime.Transient));
            }

            // TODO: If I reach this line, than Glimpse has no way to send data from point A to B. Should we blow up?
        }
예제 #37
0
        private IConfiguration SetupConfiguration()
        {
            var existingConfiguration = Builder.Services.First(z => z.ServiceType == typeof(IConfiguration))
                                        .ImplementationInstance as IConfiguration;

            var configurationBuilder = new MsftConfigurationBinder();

            configurationBuilder.AddConfiguration(existingConfiguration);

            configurationBuilder
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddYamlFile("appsettings.yml", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{_environment.EnvironmentName}.json", optional: true, reloadOnChange: true)
            .AddYamlFile($"appsettings.{_environment.EnvironmentName}.yml", optional: true, reloadOnChange: true);

            var cb = new ConfigurationBuilder(
                Scanner,
                _environment,
                existingConfiguration,
                configurationBuilder,
                _logger,
                Properties);

            cb.Build();

            if (_environment.IsDevelopment() && !string.IsNullOrEmpty(_environment.ApplicationName))
            {
                var appAssembly = Assembly.Load(new AssemblyName(_environment.ApplicationName));
                if (appAssembly != null)
                {
                    configurationBuilder.AddUserSecrets(appAssembly, optional: true);
                }
            }

            configurationBuilder.AddEnvironmentVariables();

            var newConfig = configurationBuilder.Build();

            Builder.Services.Replace(ServiceDescriptor.Singleton <IConfiguration>(newConfig));
            return(newConfig);
        }
예제 #38
0
        public Startup(IConfiguration configuration)
        {
            // Configuration = configuration;

            var builder = new ConfigurationBuilder().AddConfiguration(configuration);

            /* Add Default configurations */
            builder.AddConfiguration(configuration);

            /* Add Custom configurations */
            // adding cache.json which contains cachemanager configuration(s)
            var appOptions = configuration.GetSection(nameof(AppOptions)).Get <AppOptions>();

            if (true || appOptions.Cache)
            {
                builder.AddJsonFile("cache.json");
            }
            Configuration = builder.Build();

            /*
             * // For manual for like console app.
             * var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder().AddJsonFile("cache.json");
             * Configuration = builder.Build();
             *
             * // var cacheConfiguration = Configuration.GetCacheConfiguration();
             * var cacheConfiguration =
             *  Configuration.GetCacheConfiguration("retaileasy_cache")
             *      .Builder
             *      .WithMicrosoftLogging(f =>
             *      {
             *          f.AddSerilog();
             *          // f.AddDebug(LogLevel.Information);
             *      })
             *      .Build();
             */

            SetupLogging(Configuration);
        }
        public IConfigurationRoot Build()
        {
            var configBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
                                .SetBasePath(AppContext.BaseDirectory)
                                .AddEnvironmentVariables("OMNISHARP_");

            if (_environment.AdditionalArguments?.Length > 0)
            {
                configBuilder.AddCommandLine(_environment.AdditionalArguments);
            }

            // Use the global omnisharp config if there's any in the shared path
            configBuilder.CreateAndAddGlobalOptionsFile(_environment);

            // Use the local omnisharp config if there's any in the root path
            configBuilder.AddJsonFile(
                new PhysicalFileProvider(_environment.TargetDirectory).WrapForPolling(),
                Constants.OptionsFile,
                optional: true,
                reloadOnChange: true);

            return(configBuilder.Build());
        }
예제 #40
-1
        public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(appEnv.ApplicationBasePath);

            if (env.IsDevelopment())
            {
                builder.AddJsonFile("appsettings.json").AddJsonFile("privatesettings.json");
            }

            builder.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
            builder.AddUserSecrets();
            builder.AddEnvironmentVariables();
            this.Configuration = builder.Build();
        }