| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | using System;using Comal.Classes;using InABox.Core;namespace Comal.Stores;public class SchedulableStore<T> : BaseStore<T> where T : Entity, ISchedulable, new(){    public Type DocumentType => typeof(T); //.Name;    private Schedule[] GetSchedules(Guid id)    {        var store = FindSubStore<Schedule>();        return store.Query(            new Filter<Schedule>(x => x.DocumentClass).IsEqualTo(DocumentType.EntityName())                .And(x => x.DocumentID).IsEqualTo(id),            new Columns<Schedule>(x => x.ID))            .ToArray<Schedule>();    }    //protected override void BeforeSave(T entity)    //{    //	base.BeforeSave(entity);    //	Schedule schedule = GetSchedule(entity.ID);    //	if (schedule != null)    //		entity.ScheduleEnabled = schedule.Enabled;    //}    //protected override void AfterSave(T entity)    //{    //	base.AfterSave(entity);    //	Schedule schedule = GetSchedule(entity.ID);    //	if (schedule == null)    //	{    //		schedule = new Schedule();    //		schedule.DocumentID = entity.ID;    //		schedule.DocumentType = DocumentType;    //		FindSubStore<Schedule>().Save(ref schedule, "Updated from Master Record");    //	}    //}    protected override void BeforeDelete(T entity)    {        var schedules = GetSchedules(entity.ID);        foreach (var schedule in schedules)            FindSubStore<Schedule>().Delete(schedule, "Updated from Master Record");        base.BeforeDelete(entity);    }}
 |