1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.Database;
- namespace PRS.Shared.Database_Update_Scripts;
- public class Update_7_77 : DatabaseUpdateScript
- {
- public override VersionNumber Version => new VersionNumber(7, 77);
- public override bool Update()
- {
- var formtypes = CoreUtils.Entities
- .Where(x => x.IsSubclassOfRawGeneric(typeof(EntityForm<,,>)))
- .ToList();
- int iType = 0;
- foreach (var formtype in formtypes)
- {
- iType++;
- Logger.Send(LogType.Information, "", $"Updating {formtype.Name} Descriptions ({iType}/{formtypes.Count})");
- int iCount = 0;
- List<Entity> updates = new();
- var forms = DbFactory.NewProvider(Logger.Main).Query(
- formtype,
- Filter.Create<ICoreDigitalFormInstance>(formtype,x=>x.Description).IsEqualTo(""),
- Columns.Create<ICoreDigitalFormInstance>(formtype, ColumnTypeFlags.None)
- .Add<ICoreDigitalFormInstance>(x=>x.ID)
- .Add<ICoreDigitalFormInstance>(x=>x.Description)
- .Add<ICoreDigitalFormInstance>(x=>x.Form.Description)
- ).ToObjects(formtype).ToList();
- foreach (var form in forms)
- {
- if (form is ICoreDigitalFormInstance instance and Entity entity)
- {
- instance.Description = instance.Form.Description;
- updates.Add(entity);
- }
- if (updates.Count >= 100)
- {
- iCount += 100;
- Logger.Send(LogType.Information, "", $"- Updating {formtype.Name}s ({iCount}/{forms.Count})");
- DbFactory.NewProvider(Logger.Main).Save(formtype,updates);
- updates.Clear();
- }
- }
- if (updates.Any())
- {
- iCount += updates.Count;
- Logger.Send(LogType.Information, "", $"- Updating {formtype.Name}s ({iCount}/{forms.Count})");
- DbFactory.NewProvider(Logger.Main).Save(formtype,updates);
- updates.Clear();
- }
- }
-
- return true;
- }
- }
|