LeaveRequestStore.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Comal.Classes;
  7. using InABox.Core;
  8. namespace Comal.Stores
  9. {
  10. internal class LeaveRequestStore : BaseStore<LeaveRequest>
  11. {
  12. protected override void OnSave(LeaveRequest entity, ref string auditnote)
  13. {
  14. base.OnSave(entity, ref auditnote);
  15. if (entity.HasOriginalValue(c => c.Status))
  16. NotifyEmployee(
  17. entity,
  18. x => x.EmployeeLink.ID,
  19. e => e.HasOriginalValue(x => x.Status),
  20. e => $"Leave Request {e.Status}",
  21. e =>
  22. {
  23. var sb = new StringBuilder();
  24. sb.AppendLine(
  25. $"Your Leave Request submitted {e.Created:dd MMM yyy} for {e.From:dd MMM yy} - {e.To:dd MMM yy} has changed from {e.GetOriginalValue(c => c.Status)} to {e.Status}.");
  26. if (!string.IsNullOrWhiteSpace(e.StatusNotes))
  27. sb.AppendLine($"\nNotes:\n{e.StatusNotes?.Trim()}");
  28. return sb.ToString();
  29. }
  30. );
  31. }
  32. }
  33. }