using System; using System.Linq; using Comal.Classes; using InABox.Core; namespace Comal.Stores { public class ScheduleActionStore : BaseStore where T : Entity, IScheduleAction, new() { protected override void AfterSave(T entity) { base.AfterSave(entity); if (entity.HasOriginalValue(x => x.Completed) && !entity.Completed.Equals(DateTime.MinValue) && entity.ScheduleLink.IsValid() && entity.ScheduleLink.Rollover == ScheduleRollover.FromActualDate) { var schedulestore = FindSubStore(); var schedule = schedulestore.Load(new Filter(x => x.ID).IsEqualTo(entity.ScheduleLink.ID)).FirstOrDefault(); if (schedule != null) { schedule.DueDate = schedule.GetNextDate(entity.Completed); schedulestore.Save(schedule, "Updated by Task AfterSave()"); } } } } }