using Comal.Classes; using InABox.Core; using InABox.Database; using PRS.Shared.Database_Update_Scripts.Utils; using PRSStores; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PRS.Shared.Database_Update_Scripts; internal class Update_8_04 : DatabaseUpdateScript { public override VersionNumber Version => new(8, 4); private static void UpdateJobField() { Logger.Send(LogType.Information, "", $"Correcting empty job field."); var jobRequiItems = DbFactory.NewProvider(Logger.Main).Query( new Filter(x => x.Job.ID).IsEqualTo(Guid.Empty), Columns.None().Add(x => x.ID).Add(x => x.Job.ID).Add(x => x.Requisition.Job.ID)) .ToObjects() .ToList(); foreach(var jri in jobRequiItems) { jri.Job.ID = jri.Requisition.Job.ID; } DbFactory.NewProvider(Logger.Main).Save(jobRequiItems); Logger.Send(LogType.Information, "", $"Corrected empty job field for {jobRequiItems.Count} job requisition items."); } public override bool Update() { UpdateJobField(); JobRequisitionItemUtils.RefreshStatuses(DbFactory.FindStore(Guid.Empty, "", Platform.Server, CoreUtils.GetVersion(), Logger.New())); return true; } }