예제 #1
0
        public async Task LoadTest_Consul_GetAll()
        {
            var provider = new ConsulConfigurationStore();
            var sTime    = DateTime.Now;
            int load     = 1;
            var tasks    = new Task <bool> [load];

            for (int i = 0; i < load; i++)
            {
                tasks[i] = Task.Run(async() => await GetAllAsync());
            }

            var continuation = Task.WhenAll(tasks);

            try
            {
                continuation.Wait();
            }
            catch (AggregateException)
            { }


            if (continuation.Status == TaskStatus.RanToCompletion)
            {
                Console.WriteLine(DateTime.Now.Subtract(sTime));
            }
        }
예제 #2
0
        public void GetConfugurationFromConsul()
        {
            var provider = new ConsulConfigurationStore();

            var result = provider.Get("global", "content_service", "hotel_content", "applicable_supplier_families");

            Assert.IsNotNull(result);
        }
예제 #3
0
        public async Task <bool> GetAllAsync()
        {
            var provider = new ConsulConfigurationStore();

            Console.WriteLine("hello");
            var result = await provider.GetAllAsync();

            return(result != null);
        }
예제 #4
0
        public async Task GetAllConfugurationFromConsul()
        {
            var provider = new ConsulConfigurationStore();

            var result = await provider.GetAllAsync();

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count > 0);
        }
예제 #5
0
        private IConfigurationRoot GetConfiguration()
        {
            var configBuilder = new ConfigurationBuilder()
                                .AddJsonFile("ConsulSettings.json");

            var config = configBuilder.Build();

            try
            {
                var store = new ConsulConfigurationStore(config["Url"], config["Token"]);

                IExternalConfigurationProvider prov =
                    new ExternalConfigurationProvider(store, config["Environment"]);

                var serviceSettings = prov.GetServiceSettingsAsync(config["ServiceName"]).Result;

                if (!string.IsNullOrEmpty(serviceSettings["AppService"]))
                {
                    configBuilder.Sources.Clear();

                    using var jsonStream = new MemoryStream(Encoding.UTF8
                                                            .GetBytes(serviceSettings["AppService"]));

                    configBuilder.AddJsonStream(jsonStream);

                    config = configBuilder.Build();
                }

                else
                {
                    throw new Exception("Consul doesn't contain needed settings");
                }
            }

            catch
            {
                configBuilder.Sources.Clear();
                configBuilder.AddJsonFile("appsettings.json");

                config = configBuilder.Build();
            }

            return(config);
        }
        static void Main(string[] args)
        {
            var consulUrl   = Properties.Settings.Default.ConsulUrl;
            var consulToken = Properties.Settings.Default.ConsulToken;

            var consulConfig = new ConsulConfig
            {
                Url   = consulUrl,
                Token = consulToken
            };

            var store    = new ConsulConfigurationStore(consulConfig.Url, consulConfig.Token);
            var provider = new ExternalConfigurationProvider(store, "debug");

            var mangoSettingsTask = provider.GetServiceSettingsAsync <MangoConfig>("mango");

            var mangoSettings = mangoSettingsTask.Result;

            Console.WriteLine($"ApiKey : {mangoSettings.ApiKey}");
            Console.WriteLine($"ApiSignature : {mangoSettings.ApiSignature}");

            Console.ReadLine();
        }