protected override void AddBindable <TBindable>(T lookup, Bindable <TBindable> bindable) { base.AddBindable(lookup, bindable); var setting = databasedSettings.Find(s => (int)s.Key == (int)(object)lookup); if (setting != null) { bindable.Parse(setting.Value); } else { settings.Update(setting = new DatabasedSetting { Key = lookup, Value = bindable.Value, RulesetID = ruleset?.ID, Variant = variant, }); databasedSettings.Add(setting); } bindable.ValueChanged += b => { setting.Value = b.NewValue; settings.Update(setting); }; }
public void Update(DatabasedSetting setting) { using (ContextFactory.GetForWrite()) { var newValue = setting.Value; Refresh(ref setting); setting.Value = newValue; } SettingChanged?.Invoke(); }
public void Update(DatabasedSetting setting) { var context = GetContext(); var newValue = setting.Value; Refresh(ref setting); setting.Value = newValue; context.SaveChanges(); SettingChanged?.Invoke(); }
protected override void AddBindable <TBindable>(T lookup, Bindable <TBindable> bindable) { base.AddBindable(lookup, bindable); if (legacySettingsExist) { var legacySetting = databasedSettings.Find(s => s.Key == ((int)(object)lookup).ToString()); if (legacySetting != null) { bindable.Parse(legacySetting.Value); settings.Delete(legacySetting); } } var setting = databasedSettings.Find(s => s.Key == lookup.ToString()); if (setting != null) { bindable.Parse(setting.Value); } else { settings.Update(setting = new DatabasedSetting { Key = lookup.ToString(), Value = bindable.Value, RulesetID = ruleset?.ID, Variant = variant, }); databasedSettings.Add(setting); } bindable.ValueChanged += b => { setting.Value = b.NewValue; lock (dirtySettings) { if (!dirtySettings.Contains(setting)) { dirtySettings.Add(setting); } } }; }
public void Delete(DatabasedSetting setting) { using (var usage = ContextFactory.GetForWrite()) usage.Context.Remove(setting); }