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); }
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(); }
public void Reload() { ServerData = new ServerTaxiHailSetting(); Load(); }
public FakeServerSettings() { ServerData = new ServerTaxiHailSetting(); Load(); }
public void SetSetting(string key, string value) { _config[key] = value; ServerData = new ServerTaxiHailSetting(); SetSettingsValue(_config); }