using InABox.Core; using Comal.Classes; using InABox.Database; namespace PRS.Shared; public class Update_7_54 : DatabaseUpdateScript { public override VersionNumber Version => new VersionNumber(7, 54); private KanbanStatus CalculateStatus(string? category) { if (String.IsNullOrWhiteSpace(category) || category.Equals("Open")) return KanbanStatus.Open; if(category.Equals("In Progress")) return KanbanStatus.InProgress; if (category.Equals("Waiting")) return KanbanStatus.Waiting; if (category.Equals("Complete")) return KanbanStatus.Complete; return KanbanStatus.Open; } public override bool Update() { var kanbans = DbFactory.NewProvider(Logger.Main).Query( typeof(Kanban), new Filter("Category").IsNotEqualTo(""), Columns.None().Add(x => x.ID).Add(x => x.Status).Add("Category") ).ToList(); foreach(var kanban in kanbans) { kanban.Status = CalculateStatus(CoreUtils.GetPropertyValue(kanban,"Category") as String); CoreUtils.SetPropertyValue(kanban, "Category", ""); } DbFactory.NewProvider(Logger.Main).Save(kanbans); return true; } }