using InABox.Configuration; using InABox.Core; using InABox.Database; using InABox.DynamicGrid; namespace PRS.Shared.Database_Update_Scripts; internal class Update_7_62 : DatabaseUpdateScript { public override VersionNumber Version => new(7, 62); public override bool Update() { Logger.Send(LogType.Information, "", $"Updating Master/Detail Column Definitions"); int count = UpdateGlobalColumns(); count += UpdateUserColumns(); Logger.Send(LogType.Information, "", $"- Updated {count} Column Definitions"); return true; } private static int UpdateGlobalColumns() { Logger.Send(LogType.Information, "", "- Updating Global Column Definitions"); var settings = DbFactory.NewProvider(Logger.Main).Query( new Filter(x => x.Section).IsEqualTo(nameof(DynamicGridColumns)) ).ToObjects().ToArray(); foreach (var setting in settings) { if (String.Equals(setting.Key,"Job")) setting.Key = $"Job.Projects:Combined"; else if (String.Equals(setting.Key,"Job.Register")) setting.Key = $"Job.Projects:Master"; } var updates = settings.Where(x => x.IsChanged()).ToArray(); DbFactory.NewProvider(Logger.Main).Save(updates); return updates.Length; } private static int UpdateUserColumns() { Logger.Send(LogType.Information, "", "- Updating User Column Definitions"); var settings = DbFactory.NewProvider(Logger.Main).Query( new Filter(x => x.Section).IsEqualTo(nameof(DynamicGridColumns)) ).ToObjects().ToArray(); foreach (var setting in settings) { if (String.Equals(setting.Key,"Job")) setting.Key = $"Job.Projects:Combined"; else if (String.Equals(setting.Key,"Job.Register")) setting.Key = $"Job.Projects:Master"; } var updates = settings.Where(x => x.IsChanged()).ToArray(); DbFactory.NewProvider(Logger.Main).Save(updates); return updates.Length; } }