Update_8_20.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Comal.Classes;
  2. using InABox.Configuration;
  3. using InABox.Core;
  4. using InABox.Database;
  5. namespace PRS.Shared.Database_Update_Scripts;
  6. internal class Update_8_20 : DatabaseUpdateScript
  7. {
  8. public override VersionNumber Version => new(8, 20);
  9. public override bool Update()
  10. {
  11. var _provider = DbFactory.NewProvider(Logger.Main);
  12. MigrateSettings<V6Settings>(_provider);
  13. MigrateSettings<LogikalSettings>(_provider);
  14. return true;
  15. }
  16. private static void MigrateSettings<T>(IProvider provider) where T : BaseObject, new()
  17. {
  18. var _table = provider.GetTable<T>();
  19. if (_table != null)
  20. {
  21. var _entity = _table.Rows.FirstOrDefault()?.ToObject<T>();
  22. if (_entity != null)
  23. {
  24. var _config = new GlobalSettings()
  25. {
  26. Section = typeof(T).Name.Split('.').Last(),
  27. Key = "",
  28. Contents = Serialization.Serialize(_entity)
  29. };
  30. provider.Save(_config);
  31. }
  32. provider.DropTable<T>();
  33. }
  34. }
  35. }