Update_8_04.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Comal.Classes;
  2. using InABox.Core;
  3. using InABox.Database;
  4. using PRS.Shared.Database_Update_Scripts.Utils;
  5. using PRSStores;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace PRS.Shared.Database_Update_Scripts;
  12. internal class Update_8_04 : DatabaseUpdateScript
  13. {
  14. public override VersionNumber Version => new(8, 4);
  15. private static void UpdateJobField()
  16. {
  17. Logger.Send(LogType.Information, "", $"Correcting empty job field.");
  18. var jobRequiItems = DbFactory.NewProvider(Logger.Main).Query(
  19. new Filter<JobRequisitionItem>(x => x.Job.ID).IsEqualTo(Guid.Empty),
  20. Columns.None<JobRequisitionItem>().Add(x => x.ID).Add(x => x.Job.ID).Add(x => x.Requisition.Job.ID))
  21. .ToObjects<JobRequisitionItem>()
  22. .ToList();
  23. foreach(var jri in jobRequiItems)
  24. {
  25. jri.Job.ID = jri.Requisition.Job.ID;
  26. }
  27. DbFactory.NewProvider(Logger.Main).Save(jobRequiItems);
  28. Logger.Send(LogType.Information, "", $"Corrected empty job field for {jobRequiItems.Count} job requisition items.");
  29. }
  30. public override bool Update()
  31. {
  32. UpdateJobField();
  33. JobRequisitionItemUtils.RefreshStatuses(DbFactory.FindStore<JobRequisitionItem>(Guid.Empty, "", Platform.Server, CoreUtils.GetVersion(), Logger.New()));
  34. return true;
  35. }
  36. }