| 123456789101112131415161718192021222324252627282930313233343536373839 | 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<T>()            where T : Entity, IPersistent, IPostable, new()        {            List<T> items;            do            {                items = DbFactory.Provider.Query<T>(                    new Filter<T>(x => x.PostedStatus).IsEqualTo(null),                    new Columns<T>(x => x.ID).Add(x => x.PostedStatus), top: 1000).ToObjects<T>().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<Bill>();            Migrate<Invoice>();            Migrate<PurchaseOrder>();            Migrate<TimeSheet>();            return true;        }    }}
 |