1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using Comal.Classes;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.Database;
- using NPOI.SS.Formula.Functions;
- using Columns = InABox.Core.Columns;
- namespace PRS.Shared.Database_Update_Scripts;
- internal class Update_8_22 : DatabaseUpdateScript
- {
-
- public override VersionNumber Version => new(8, 22);
-
- public override bool Update()
- {
- var _provider = DbFactory.NewProvider(Logger.Main);
- MigrateIssues<Activity>(_provider);
- MigrateIssues<ProductStyle>(_provider);
- MigrateIssues<Product>(_provider);
- MigrateIssues<CostSheet>(_provider);
- MigrateIssues<Kit>(_provider);
- MigrateIssues<JobBillOfMaterialsItem>(_provider);
- MigrateIssues<JobRequisitionItem>(_provider);
- MigrateIssues<ManufacturingPacket>(_provider);
- return true;
- }
- private void MigrateIssues<T>(IProvider provider) where T : Entity, IPersistent, IIssues, IProblems, new()
- {
- var items = provider.Query(
- new Filter<T>(x => x.Issues).IsNotEqualTo(""),
- Columns.None<T>().Add(x=>x.ID).Add(x=>x.Issues)
- ).Rows.ToObjects<T>().ToQueue();
- while (items.Any())
- {
- Logger.Send(LogType.Information,"",$"Migrating {typeof(T).Name.Split('.').Last()} Issues ({items.Count} remaining)..");
- var updates = items.Dequeue(100).ToArray();
- foreach (var update in updates)
- {
- update.Problem.Notes = new string[] { update.Issues };
- update.Issues = "";
- }
- provider.Save(updates);
- }
- Logger.Send(LogType.Information,"",$"Migrating {typeof(T).Name.Split('.').Last()} Issues done.");
-
- }
-
- }
|