CalendarAppointment.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Collections.ObjectModel;
  3. using System.Windows.Media;
  4. using System.Windows.Media.Imaging;
  5. using InABox.WPF;
  6. using PropertyChanged;
  7. using Syncfusion.UI.Xaml.Scheduler;
  8. namespace PRSDesktop
  9. {
  10. public interface ICalendarAppointment
  11. {
  12. // object Id { get; }
  13. // String? Subject { get; }
  14. // String? Notes { get; }
  15. // ObservableCollection<object> ResourceIdCollection { get; }
  16. // DateTime StartTime { get; }
  17. // DateTime EndTime { get; }
  18. // Brush Foreground { get; }
  19. // Brush AppointmentBackground { get; }
  20. BitmapImage? Image { get; }
  21. object Model { get; }
  22. }
  23. public interface ICalendarAppointment<T> : ICalendarAppointment
  24. {
  25. T Model { get; }
  26. }
  27. [DoNotNotify]
  28. public abstract class CalendarAppointment<T> : ScheduleAppointment, ICalendarAppointment<T> where T : IModel
  29. {
  30. //public object Id { get; set; }
  31. // public ObservableCollection<object> ResourceIdCollection { get; set; }
  32. //public Brush Foreground { get; set; }
  33. // public Brush AppointmentBackground { get; set; }
  34. //
  35. // public abstract DateTime StartTime { get; set; }
  36. // public abstract DateTime EndTime { get; set; }
  37. // public abstract string? Subject { get; set; }
  38. // public abstract string? Notes { get; set; }
  39. public BitmapImage? Image { get; set; }
  40. public T Model { get; }
  41. object ICalendarAppointment.Model => Model;
  42. public CalendarAppointment(T model, Func<T?,Guid> employeeid, Func<T?,String> color)
  43. {
  44. Model = model;
  45. Id = model.ID;
  46. ResourceIdCollection = new ObservableCollection<object>() { employeeid(model).ToString() };
  47. String c = color(model);
  48. Color c2 = string.IsNullOrWhiteSpace(c)
  49. ? Colors.White
  50. : (Color)ColorConverter.ConvertFromString(c);
  51. AppointmentBackground = new SolidColorBrush(c2);
  52. Foreground = new SolidColorBrush(ImageUtils.GetForegroundColor(c2));
  53. }
  54. }
  55. public class CalendarAppointments : ScheduleAppointmentCollection //ObservableCollection<ICalendarAppointment> { }}
  56. {
  57. }
  58. }