Update_7_54.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using InABox.Core;
  2. using Comal.Classes;
  3. using InABox.Database;
  4. namespace PRS.Shared;
  5. public class Update_7_54 : DatabaseUpdateScript
  6. {
  7. public override VersionNumber Version => new VersionNumber(7, 54);
  8. private KanbanStatus CalculateStatus(string? category)
  9. {
  10. if (String.IsNullOrWhiteSpace(category) || category.Equals("Open"))
  11. return KanbanStatus.Open;
  12. if(category.Equals("In Progress"))
  13. return KanbanStatus.InProgress;
  14. if (category.Equals("Waiting"))
  15. return KanbanStatus.Waiting;
  16. if (category.Equals("Complete"))
  17. return KanbanStatus.Complete;
  18. return KanbanStatus.Open;
  19. }
  20. public override bool Update()
  21. {
  22. var kanbans = DbFactory.NewProvider(Logger.Main).Query(
  23. typeof(Kanban),
  24. new Filter<Kanban>("Category").IsNotEqualTo(""),
  25. Columns.None<Kanban>().Add(x => x.ID).Add(x => x.Status).Add("Category")
  26. ).ToList<Kanban>();
  27. foreach(var kanban in kanbans)
  28. {
  29. kanban.Status = CalculateStatus(CoreUtils.GetPropertyValue(kanban,"Category") as String);
  30. CoreUtils.SetPropertyValue(kanban, "Category", "");
  31. }
  32. DbFactory.NewProvider(Logger.Main).Save(kanbans);
  33. return true;
  34. }
  35. }