LeaveRequestStore.cs 1.2 KB

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