Quellcode durchsuchen

Fixed sync issues with Daily Report

Kenric Nugteren vor 1 Woche
Ursprung
Commit
fe49f751d6
1 geänderte Dateien mit 48 neuen und 0 gelöschten Zeilen
  1. 48 0
      prs.desktop/Panels/DailyReports/DailyReport.xaml.cs

+ 48 - 0
prs.desktop/Panels/DailyReports/DailyReport.xaml.cs

@@ -626,6 +626,11 @@ namespace PRSDesktop
                     else
                         Notes.SetFocus();
                 }
+
+                if(assignment is not null)
+                {
+                    WeakEventManager<Assignment, PropertyChangedEventArgs>.AddHandler(assignment, nameof(Assignment.PropertyChanged), Assignment_Changed);
+                }
             }
             finally
             {
@@ -635,6 +640,49 @@ namespace PRSDesktop
             Logger.Send(LogType.Information, ClientFactory.UserID, "Out Of Assignment_SelectionChanged()");
         }
 
+        private void Assignment_Changed(object? sender, PropertyChangedEventArgs e)
+        {
+            if (sender != SelectedAssignment) return;
+
+            if(e.PropertyName == nameof(Assignment.Title))
+            {
+                SetEditorValue(Title, SelectedAssignment.Title, true);
+            }
+            else if(e.PropertyName == nameof(Assignment.Description))
+            {
+                SetEditorValue(ActivityNotes, SelectedAssignment.Description, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.Actual)}.{nameof(TimeBlock.Start)}")
+            {
+                SetEditorValue(Start, SelectedAssignment.Actual.Start, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.Actual)}.{nameof(TimeBlock.Duration)}")
+            {
+                SetEditorValue(Duration, SelectedAssignment.Actual.Duration, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.Actual)}.{nameof(TimeBlock.Finish)}")
+            {
+                SetEditorValue(Finish, SelectedAssignment.Actual.Finish, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.JobLink)}.{nameof(JobLink.ID)}")
+            {
+                SetEditorValue(Job, SelectedAssignment.JobLink.ID, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.ITP)}.{nameof(JobITPLink.ID)}")
+            {
+                SetEditorValue(ITP, SelectedAssignment.ITP.ID, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.ActivityLink)}.{nameof(AssignmentActivityLink.ID)}")
+            {
+                SetEditorValue(Activity, SelectedAssignment.ActivityLink.ID, true);
+            }
+            else if(e.PropertyName == $"{nameof(Assignment.Task)}.{nameof(KanbanLink.ID)}")
+            {
+                SetEditorValue(Kanban, SelectedAssignment.Task.ID, true);
+                Job.IsEnabled = SelectedAssignment.Task.IsValid();
+            }
+        }
+
         private void ConfigureEditor(BaseDynamicEditorControl editor, BaseEditor? definition = null)
         {
             editor.Host = this;