using Comal.Classes; using InABox.Core; using InABox.Database; namespace PRS.Shared { public class Update_7_31 : DatabaseUpdateScript { public override VersionNumber Version => new VersionNumber(7, 31); private static void Migrate() where T : Entity, IPersistent, IPostable, new() { List items; do { items = DbFactory.Provider.Query( new Filter(x => x.PostedStatus).IsEqualTo(null), new Columns(x => x.ID).Add(x => x.PostedStatus), top: 1000).ToObjects().ToList(); foreach (var item in items) { item.PostedStatus = PostedStatus.NeverPosted; item.OriginalValues.TryAdd("PostedStatus", null); } DbFactory.Provider.Save(items); Logger.Send(LogType.Information, "", $"{items.Count} {typeof(T).Name}s processed"); } while (items.Count > 0); } public override bool Update() { Migrate(); Migrate(); Migrate(); Migrate(); return true; } } }