AssignmentAppointment.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Media.Imaging;
  5. using Comal.Classes;
  6. using InABox.Core;
  7. using InABox.WPF;
  8. namespace PRSDesktop
  9. {
  10. public class AssignmentAppointment : CalendarAppointment<AssignmentModel>
  11. {
  12. // public override DateTime StartTime { get; set; }
  13. // public override DateTime EndTime { get; set; }
  14. // public override string? Notes { get; set; }
  15. // public override BitmapImage? Image { get; set; }
  16. // public override string? Subject { get; set; }
  17. private bool _actual;
  18. public AssignmentAppointment(AssignmentModel model, Func<AssignmentModel?,Guid> employeeid, Func<AssignmentModel?,String> color, CalendarAssignmentType type) : base(model, employeeid, color)
  19. {
  20. StartTime = type switch
  21. {
  22. CalendarAssignmentType.Booked => Model.Date.Add(Model.BookedStart),
  23. CalendarAssignmentType.Actual => Model.Date.Add(Model.ActualStart),
  24. _ => Model.Date.Add(Model.EffectiveStart()),
  25. };
  26. EndTime = type switch
  27. {
  28. CalendarAssignmentType.Booked => Model.Date.Add(Model.BookedFinish),
  29. CalendarAssignmentType.Actual => Model.Date.Add(Model.ActualFinish),
  30. _ => Model.Date.Add(Model.EffectiveFinish()),
  31. };
  32. Notes = Model.Notes;
  33. Image _image;
  34. var subject = new List<string>() { model.Number.ToString() };
  35. if (model.JobID != Guid.Empty)
  36. subject.Add(
  37. model.ItpID != Guid.Empty
  38. ? $"{model.JobNumber}-{model.ItpCode}"
  39. : $"{model.JobNumber}"
  40. );
  41. if (model.TaskID != Guid.Empty)
  42. subject.Add($"Task {model.TaskNumber}");
  43. subject.Add(model.Subject ?? "");
  44. Subject = String.Join(" ", subject);
  45. List<Bitmap> images = new List<Bitmap>();
  46. if (!model.Completed.IsEmpty())
  47. images.Add(Resources.tick_sml.Resize(32,32));
  48. if (model.DeliveryID != Guid.Empty)
  49. images.Add(Resources.box_sml.Resize(32,32));
  50. Image = ImageUtils.MergeBitmaps(images, 10)?.AsBitmapImage();
  51. }
  52. }
  53. }