| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | using Comal.Classes;using InABox.Core;using InABox.Database;using System;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.Provider.Query(null,                new Columns<EmployeeRoster>(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.Provider.Save(rosterTemplatesToSave);            DbFactory.Provider.Save(rosterTemplateItems);            return true;        }        public static bool DoEmployeeRosters()        {            var employees = DbFactory.Provider.Query(null,                new Columns<Employee>(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.Provider.Save(employeesToSave);            DbFactory.Provider.Save(rosterTemplateItems);            return true;        }        public override bool Update()        {            return DoTemplates() && DoEmployeeRosters();        }    }}
 |