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);
            };
        }
Example #2
0
        public void Update(DatabasedSetting setting)
        {
            using (ContextFactory.GetForWrite())
            {
                var newValue = setting.Value;
                Refresh(ref setting);
                setting.Value = newValue;
            }

            SettingChanged?.Invoke();
        }
Example #3
0
        public void Update(DatabasedSetting setting)
        {
            var context = GetContext();

            var newValue = setting.Value;

            Refresh(ref setting);

            setting.Value = newValue;

            context.SaveChanges();

            SettingChanged?.Invoke();
        }
Example #4
0
        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);
                    }
                }
            };
        }
Example #5
0
 public void Delete(DatabasedSetting setting)
 {
     using (var usage = ContextFactory.GetForWrite())
         usage.Context.Remove(setting);
 }