public override void SetOverride(string appName, string settingName, string value, TTier tier, TDataCenter dataCenter) { var overrideKey = new OverrideKey(appName, tier, dataCenter); var overrideValue = new SettingValue <TTier, TDataCenter>(settingName, value, tier, dataCenter); _overrides.AddOrUpdate( overrideKey, key => new Overrides { [settingName] = overrideValue }, (key, existing) => { existing[settingName] = overrideValue; _overridesByApp.AddOrUpdate( appName, key => new List <OverrideKey> { overrideKey }, (key, existing) => { existing.Add(overrideKey); return(existing); } ); return(existing); } ); Changed?.Invoke(this, EventArgs.Empty); }
public override void ClearOverride(string appName, string settingName, TTier tier, TDataCenter dataCenter) { var overrideKey = new OverrideKey(appName, tier, dataCenter); if (_overrides.TryGetValue(overrideKey, out var overrides)) { overrides.Remove(settingName); } Changed?.Invoke(this, EventArgs.Empty); }