1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.Database;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRS.Shared
- {
- public class Update_7_30 : DatabaseUpdateScript
- {
- public override VersionNumber Version => new(7, 30);
- public static bool DoTemplates()
- {
- var rosterTemplates = DbFactory.NewProvider(Logger.Main).Query(null,
- Columns.None<EmployeeRoster>().Add(x => x.ID).Add(x => x.Roster)).ToObjects<EmployeeRoster>();
- var rosterTemplatesToSave = new List<EmployeeRoster>();
- var rosterTemplateItems = new List<EmployeeRosterTemplateItem>();
- foreach (var employee in rosterTemplates)
- {
- if (employee.Roster.IsNullOrWhiteSpace()) continue;
- var rosterItems = Serialization.Deserialize<List<EmployeeRosterTemplateItem>>(employee.Roster) ?? new();
- employee.Roster = "";
- foreach (var item in rosterItems)
- {
- item.Roster.ID = employee.ID;
- rosterTemplateItems.Add(item);
- }
- rosterTemplatesToSave.Add(employee);
- }
- DbFactory.NewProvider(Logger.Main).Save(rosterTemplatesToSave);
- DbFactory.NewProvider(Logger.Main).Save(rosterTemplateItems);
- return true;
- }
- public static bool DoEmployeeRosters()
- {
- var employees = DbFactory.NewProvider(Logger.Main).Query(null,
- Columns.None<Employee>().Add(x => x.ID).Add(x => x.Roster)).ToObjects<Employee>();
- var employeesToSave = new List<Employee>();
- var rosterTemplateItems = new List<EmployeeRosterItem>();
- foreach (var employee in employees)
- {
- if (employee.Roster.IsNullOrWhiteSpace()) continue;
- var rosterItems = Serialization.Deserialize<List<EmployeeRosterItem>>(employee.Roster) ?? new();
- employee.Roster = "";
- foreach (var item in rosterItems)
- {
- item.Employee.ID = employee.ID;
- rosterTemplateItems.Add(item);
- }
- employeesToSave.Add(employee);
- }
- DbFactory.NewProvider(Logger.Main).Save(employeesToSave);
- DbFactory.NewProvider(Logger.Main).Save(rosterTemplateItems);
- return true;
- }
- public override bool Update()
- {
- return DoTemplates() && DoEmployeeRosters();
- }
- }
- }
|