ScheduleActionStore.cs 1016 B

123456789101112131415161718192021222324252627
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. namespace Comal.Stores
  6. {
  7. public class ScheduleActionStore<T> : BaseStore<T> where T : Entity, IScheduleAction, new()
  8. {
  9. protected override void AfterSave(T entity)
  10. {
  11. base.AfterSave(entity);
  12. if (entity.HasOriginalValue(x => x.Completed) && !entity.Completed.Equals(DateTime.MinValue) &&
  13. entity.ScheduleLink.IsValid() &&
  14. entity.ScheduleLink.Rollover == ScheduleRollover.FromActualDate)
  15. {
  16. var schedulestore = FindSubStore<Schedule>();
  17. var schedule = schedulestore.Load(new Filter<Schedule>(x => x.ID).IsEqualTo(entity.ScheduleLink.ID)).FirstOrDefault();
  18. if (schedule != null)
  19. {
  20. schedule.DueDate = schedule.GetNextDate(entity.Completed);
  21. schedulestore.Save(schedule, "Updated by Task AfterSave()");
  22. }
  23. }
  24. }
  25. }
  26. }