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.Provider
- .Query<Requisition>(null, new Columns<Requisition>(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 = new Columns<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.Provider.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.Provider.Save<RequisitionItem>(items);
- Logger.Send(LogType.Information, "", $"{items.Length} requisition items processed");
- }
- }
|