Update_7_43.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using InABox.Configuration;
  2. using InABox.Core;
  3. using InABox.Database;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace PRS.Shared
  9. {
  10. public class Update_7_43 : DatabaseUpdateScript
  11. {
  12. public override VersionNumber Version => new VersionNumber(7, 43);
  13. public override bool Update()
  14. {
  15. var filters = DbFactory.NewProvider(Logger.Main).Query(
  16. new InABox.Core.Filter<GlobalSettings>(x => x.Section).IsEqualTo("CoreFilterDefinitions"),
  17. Columns.None<GlobalSettings>().Add(x => x.ID, x => x.Contents)).ToObjects<GlobalSettings>().ToList();
  18. foreach(var filter in filters)
  19. {
  20. var defs = Serialization.Deserialize<CoreFilterDefinitions>(filter.Contents) ?? new CoreFilterDefinitions();
  21. var nextSequence = 0L;
  22. foreach(var def in defs)
  23. {
  24. if(def.Sequence < nextSequence)
  25. {
  26. def.Sequence = nextSequence;
  27. }
  28. nextSequence = def.Sequence + 1;
  29. }
  30. filter.Contents = Serialization.Serialize(defs);
  31. }
  32. DbFactory.NewProvider(Logger.Main).Save(filters);
  33. return true;
  34. }
  35. }
  36. }