Guest User

Untitled

a guest
Feb 17th, 2023
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.30 KB | None | 0 0
  1. public class UserPreferences
  2. {
  3.     private IDataProvider _dataProvider;
  4.     private UserPreferencesDefaults _defaults;
  5.     private PreferencesContainer _container;
  6.    
  7.     public CommonPreferences Common => _container.Common;
  8.     public SettingsPreferences Settings => _container.Settings;
  9.     public ControlsPreferences Controls => _container.Controls;
  10.    
  11.     public UserPreferences(IDataProvider dataProvider, UserPreferencesDefaults defaults)
  12.     {
  13.         _dataProvider = dataProvider;
  14.         _defaults = defaults;
  15.         LoadPreferences();
  16.     }
  17.    
  18.     public void SaveChanges()
  19.     {
  20.         SavePreferences();
  21.         _dataProvider.Apply();
  22.     }
  23.    
  24.     private void LoadPreferences()
  25.     {
  26.         if (_dataProvider.Contains("preferences"))
  27.         {
  28.             var jsonText = _dataProvider.GetString("preferences");
  29.             _container = JsonConvert.DeserializeObject<PreferencesContainer>(jsonText);
  30.         }
  31.         else
  32.         {
  33.             _container = new PreferencesContainer()
  34.             {
  35.                 Common = _defaults.Common,
  36.                 Settings = _defaults.Settings,
  37.                 Controls = _defaults.Controls
  38.             };
  39.         }
  40.     }
  41.     private void SavePreferences()
  42.     {
  43.         _dataProvider.PutString(key, JsonConvert.SerializeObject(_container));
  44.     }
  45.    
  46.     private class PreferencesContainer
  47.     {
  48.         public int Version = 1;
  49.         public CommonPreferences Common;
  50.         public SettingsPreferences Settings;
  51.         public ControlsPreferences Controls;
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment