Update_7_62.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using InABox.Configuration;
  2. using InABox.Core;
  3. using InABox.Database;
  4. using InABox.DynamicGrid;
  5. namespace PRS.Shared.Database_Update_Scripts;
  6. internal class Update_7_62 : DatabaseUpdateScript
  7. {
  8. public override VersionNumber Version => new(7, 62);
  9. public override bool Update()
  10. {
  11. Logger.Send(LogType.Information, "", $"Updating Master/Detail Column Definitions");
  12. int count = UpdateGlobalColumns();
  13. count += UpdateUserColumns();
  14. Logger.Send(LogType.Information, "", $"- Updated {count} Column Definitions");
  15. return true;
  16. }
  17. private static int UpdateGlobalColumns()
  18. {
  19. Logger.Send(LogType.Information, "", "- Updating Global Column Definitions");
  20. var settings = DbFactory.NewProvider(Logger.Main).Query(
  21. new Filter<GlobalSettings>(x => x.Section).IsEqualTo(nameof(DynamicGridColumns))
  22. ).ToObjects<GlobalSettings>().ToArray();
  23. foreach (var setting in settings)
  24. {
  25. if (String.Equals(setting.Key,"Job"))
  26. setting.Key = $"Job.Projects:Combined";
  27. else if (String.Equals(setting.Key,"Job.Register"))
  28. setting.Key = $"Job.Projects:Master";
  29. }
  30. var updates = settings.Where(x => x.IsChanged()).ToArray();
  31. DbFactory.NewProvider(Logger.Main).Save(updates);
  32. return updates.Length;
  33. }
  34. private static int UpdateUserColumns()
  35. {
  36. Logger.Send(LogType.Information, "", "- Updating User Column Definitions");
  37. var settings = DbFactory.NewProvider(Logger.Main).Query(
  38. new Filter<UserSettings>(x => x.Section).IsEqualTo(nameof(DynamicGridColumns))
  39. ).ToObjects<UserSettings>().ToArray();
  40. foreach (var setting in settings)
  41. {
  42. if (String.Equals(setting.Key,"Job"))
  43. setting.Key = $"Job.Projects:Combined";
  44. else if (String.Equals(setting.Key,"Job.Register"))
  45. setting.Key = $"Job.Projects:Master";
  46. }
  47. var updates = settings.Where(x => x.IsChanged()).ToArray();
  48. DbFactory.NewProvider(Logger.Main).Save(updates);
  49. return updates.Length;
  50. }
  51. }