using Comal.Classes; using InABox.Core; using InABox.Database; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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.Provider.Query( typeof(Kanban), new Filter("Category").IsNotEqualTo(""), new Columns(x => x.ID).Add(x => x.Status).Add("Category") ).ToList(); foreach(var kanban in kanbans) { var newStatus = CalculateStatus(CoreUtils.GetPropertyValue(kanban,"Category") as String); if (kanban.Status != newStatus) kanban.Status = newStatus; CoreUtils.SetPropertyValue(kanban, "Category", ""); } DbFactory.Provider.Save(kanbans); return true; } }