|
|
@@ -18,21 +18,60 @@ namespace PRSDesktop
|
|
|
{
|
|
|
public CalendarAssignmentType AssignmentType { get; }
|
|
|
|
|
|
- public override TimeSpan StartTime => AssignmentType switch
|
|
|
+ public override TimeSpan StartTime
|
|
|
{
|
|
|
- CalendarAssignmentType.Booked => Model.Booked.Start,
|
|
|
- CalendarAssignmentType.Actual => Model.Actual.Start,
|
|
|
- _ => Model.EffectiveStartTime()
|
|
|
- };
|
|
|
+ get => AssignmentType switch
|
|
|
+ {
|
|
|
+ CalendarAssignmentType.Booked => Model.Booked.Start,
|
|
|
+ CalendarAssignmentType.Actual => Model.Actual.Start,
|
|
|
+ _ => Model.EffectiveStartTime()
|
|
|
+ };
|
|
|
+ set
|
|
|
+ {
|
|
|
+ switch (AssignmentType)
|
|
|
+ {
|
|
|
+ case CalendarAssignmentType.Automatic:
|
|
|
+ case CalendarAssignmentType.Actual:
|
|
|
+ Model.Actual.Start = value;
|
|
|
+ break;
|
|
|
+ case CalendarAssignmentType.Booked:
|
|
|
+ Model.Booked.Start = value;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ OnUpdate?.Invoke();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- public override TimeSpan EndTime => AssignmentType switch
|
|
|
+ public override TimeSpan EndTime
|
|
|
{
|
|
|
- CalendarAssignmentType.Booked => Model.Booked.Finish,
|
|
|
- CalendarAssignmentType.Actual => Model.Actual.Finish,
|
|
|
- _ => Model.EffectiveFinishTime()
|
|
|
- };
|
|
|
+ get => AssignmentType switch
|
|
|
+ {
|
|
|
+ CalendarAssignmentType.Booked => Model.Booked.Finish,
|
|
|
+ CalendarAssignmentType.Actual => Model.Actual.Finish,
|
|
|
+ _ => Model.EffectiveFinishTime()
|
|
|
+ };
|
|
|
+ set
|
|
|
+ {
|
|
|
+ switch (AssignmentType)
|
|
|
+ {
|
|
|
+ case CalendarAssignmentType.Automatic:
|
|
|
+ case CalendarAssignmentType.Actual:
|
|
|
+ Model.Actual.Finish = value;
|
|
|
+ break;
|
|
|
+ case CalendarAssignmentType.Booked:
|
|
|
+ Model.Booked.Finish = value;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ OnUpdate?.Invoke();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public override bool CanAdjust => true;
|
|
|
|
|
|
public override DateTime Date => Model.Date;
|
|
|
+
|
|
|
+ public event Action? OnUpdate;
|
|
|
|
|
|
public AssignmentAppointment(Assignment model, Employee employee, CalendarAssignmentType type)
|
|
|
: base(model, employee, x => x.ActivityLink.Color)
|