| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using Comal.Classes;using InABox.Core;using InABox.Database;namespace PRS.Shared;public class Update_7_40 : DatabaseUpdateScript{    public override VersionNumber Version => new VersionNumber(7, 40);        public override bool Update()    {        UpdateRequitionItemJobLinks();        return true;    }    private void UpdateRequitionItemJobLinks()    {        var requijobs = DbFactory.NewProvider(Logger.Main)            .Query<Requisition>(null, Columns.None<Requisition>().Add(x => x.ID, x => x.JobLink.ID))            .ToDictionary<Requisition, Guid, Guid>(x => x.ID, x => x.JobLink.ID);                var filter = new Filter<RequisitionItem>(x => x.JobLink.ID)            .IsEqualTo(Guid.Empty);                var columns = Columns.None<RequisitionItem>()            .Add(x => x.ID)            .Add(x=>x.RequisitionLink.ID)            .Add(x=>x.RequisitionLink.Filled)            .Add(x=>x.RequisitionLink.Archived)            .Add(x => x.JobLink.ID)            .Add("Job.ID");                var items = DbFactory.NewProvider(Logger.Main).Query(typeof(RequisitionItem), filter, columns)            .Rows            .Select(r => r.ToObject<RequisitionItem>())            .ToArray();                foreach (var item in items)        {            requijobs.TryGetValue(item.RequisitionLink.ID, out Guid jobid);            item.JobLink.ID = jobid;            CoreUtils.SetPropertyValue(item,"Job.ID", jobid);        }                DbFactory.NewProvider(Logger.Main).Save<RequisitionItem>(items);        Logger.Send(LogType.Information, "", $"{items.Length} requisition items processed");    }}
 |