示例#1
0
        public ServerSettings(Func <ConfigurationDbContext> contextFactory, ILogger logger)
        {
            _contextFactory = contextFactory;
            _logger         = logger;

            ServerData = new ServerTaxiHailSetting();
            Load();
        }
        public DummyServerSettings(Dictionary <string, string> dictionary = null)
        {
            if (dictionary == null)
            {
                dictionary = new Dictionary <string, string>();
            }

            AppSettings = dictionary;

            ServerData = new ServerTaxiHailSetting();
            Load();
        }
        public TestServerSettings()
        {
            _config = new Dictionary <string, string>();
            _serverPaymentSettings = new Dictionary <string, ServerPaymentSettings>
            {
                { string.Empty, new ServerPaymentSettings() }
            };

            var jsonSettings   = File.ReadAllText(Path.Combine(AssemblyDirectory, "MKWebDev.json"));
            var objectSettings = JObject.Parse(jsonSettings);

            foreach (var token in objectSettings)
            {
                _config.Add(token.Key, token.Value.ToString());
            }

            ServerData = new ServerTaxiHailSetting();

            SetSettingsValue(_config);
        }
示例#4
0
        public FakeServerSettings(bool useHoneyBadger = false)
        {
            ServerData = new ServerTaxiHailSetting();
            var config = new Dictionary <string, string>
            {
                { "TaxiHail.ApplicationName", "Apcurium" }
            };

            if (useHoneyBadger)
            {
                config.Add("LocalAvailableVehiclesMode", ((int)LocalAvailableVehiclesModes.HoneyBadger).ToString());
                config.Add("ExternalAvailableVehiclesMode", ((int)ExternalAvailableVehiclesModes.HoneyBadger).ToString());
                config.Add("HoneyBadger.AvailableVehiclesMarket", "MTL");
            }
            else
            {
                config.Add("LocalAvailableVehiclesMode", ((int)LocalAvailableVehiclesModes.Geo).ToString());
                config.Add("ExternalAvailableVehiclesMode", ((int)ExternalAvailableVehiclesModes.Geo).ToString());
                config.Add("HoneyBadger.AvailableVehiclesMarket", string.Empty);
            }

            SetSettingsValue(config);
        }
        public void Handle(AppSettingsAddedOrUpdated @event)
        {
            using (var context = _contextFactory.Invoke())
            {
                var settings         = context.Query <AppSetting>().ToList();
                var taxiHailSettings = new ServerTaxiHailSetting();
                var defaultSettings  = taxiHailSettings.GetType().GetAllProperties();

                foreach (var appSetting in @event.AppSettings)
                {
                    if (!defaultSettings.ContainsKey(appSetting.Key))
                    {
                        // Setting doesn't exist
                        continue;
                    }

                    var    defaultSettingValue = taxiHailSettings.GetNestedPropertyValue(appSetting.Key);
                    string defaultSettingStringValue;

                    if (defaultSettings[appSetting.Key].PropertyType == typeof(bool?))
                    {
                        // Support for nullabool
                        defaultSettingStringValue = defaultSettingValue == null
                            ? "null"
                            : defaultSettingValue.ToString().ToLower();
                    }
                    else
                    {
                        defaultSettingStringValue = defaultSettingValue == null ? string.Empty : defaultSettingValue.ToString();
                    }

                    if (defaultSettingStringValue.IsBool())
                    {
                        // Needed because ToString() returns False instead of false
                        defaultSettingStringValue = defaultSettingStringValue.ToLower();
                    }

                    var settingToUpdate = settings.FirstOrDefault(x => x.Key == appSetting.Key);
                    if (settingToUpdate != null)
                    {
                        if (appSetting.Value != defaultSettingStringValue)
                        {
                            // Value is different than default
                            settingToUpdate.Value = appSetting.Value;
                        }
                        else
                        {
                            // Value is the same as default, remove the setting
                            context.Set <AppSetting>().Remove(settingToUpdate);
                        }
                    }
                    else
                    {
                        if (appSetting.Value != defaultSettingStringValue)
                        {
                            // New setting with value different than default
                            context.Set <AppSetting>().Add(new AppSetting(appSetting.Key, appSetting.Value));
                        }
                    }
                }

                context.SaveChanges();
            }

            // Refresh the ServerData object
            _serverSettings.Reload();
        }
示例#6
0
 public void Reload()
 {
     ServerData = new ServerTaxiHailSetting();
     Load();
 }
示例#7
0
 public FakeServerSettings()
 {
     ServerData = new ServerTaxiHailSetting();
     Load();
 }
 public void SetSetting(string key, string value)
 {
     _config[key] = value;
     ServerData   = new ServerTaxiHailSetting();
     SetSettingsValue(_config);
 }