Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class UserPreferences
- {
- private IDataProvider _dataProvider;
- private UserPreferencesDefaults _defaults;
- private PreferencesContainer _container;
- public CommonPreferences Common => _container.Common;
- public SettingsPreferences Settings => _container.Settings;
- public ControlsPreferences Controls => _container.Controls;
- public UserPreferences(IDataProvider dataProvider, UserPreferencesDefaults defaults)
- {
- _dataProvider = dataProvider;
- _defaults = defaults;
- LoadPreferences();
- }
- public void SaveChanges()
- {
- SavePreferences();
- _dataProvider.Apply();
- }
- private void LoadPreferences()
- {
- if (_dataProvider.Contains("preferences"))
- {
- var jsonText = _dataProvider.GetString("preferences");
- _container = JsonConvert.DeserializeObject<PreferencesContainer>(jsonText);
- }
- else
- {
- _container = new PreferencesContainer()
- {
- Common = _defaults.Common,
- Settings = _defaults.Settings,
- Controls = _defaults.Controls
- };
- }
- }
- private void SavePreferences()
- {
- _dataProvider.PutString(key, JsonConvert.SerializeObject(_container));
- }
- private class PreferencesContainer
- {
- public int Version = 1;
- public CommonPreferences Common;
- public SettingsPreferences Settings;
- public ControlsPreferences Controls;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment