private void handleUpdate(string propertyName) { try { if (Globals.LoadingActions) { return; } if (actionCode == "") { Created = true; OnPropertyChanged("Created"); int projectID = Globals.SelectedProjectProxy.ProjectID; Project = ProjectFunctions.GetProject(projectID); OnPropertyChanged("Project"); ActionCode = ProjectFunctions.ActionCode(projectID, Globals.Today); LoggedBy = ProjectFunctions.LoggedByList.FirstOrDefault(it => it.StaffMember.ID == MyStaffID); OnPropertyChanged("LoggedBy"); CompletedDescription = "Not Started"; LoggedDate = Globals.Today; OnPropertyChanged("LoggedDate"); ProjectFunctions.ActionsChanged(); if (Owner == null && SelectedOwner != null) // Try to use the owner from the filter, if they are in the team { if (ProjectFunctions.OwnerList.Exists(ol => ol.ClientTeamMember != null && SelectedOwner.ClientContact != null && ol.ClientTeamMember.ContactID == SelectedOwner.ClientContact.ID)) { Owner = ProjectFunctions.OwnerList.FirstOrDefault(ol => ol.ClientTeamMember != null && SelectedOwner.ClientContact != null && ol.ClientTeamMember.ContactID == SelectedOwner.ClientContact.ID); } else if (ProjectFunctions.OwnerList.Exists(ol => ol.InternalTeamMember != null && SelectedOwner.StaffMember != null && ol.InternalTeamMember.StaffID == SelectedOwner.StaffMember.ID)) { Owner = ProjectFunctions.OwnerList.FirstOrDefault(ol => ol.InternalTeamMember != null && SelectedOwner.StaffMember != null && ol.InternalTeamMember.StaffID == SelectedOwner.StaffMember.ID); } } } else if (!Created && !Updated) { Updated = true; OnPropertyChanged("Updated"); if (LoggedDate != Globals.Today) { UpdatedDate = Globals.Today; } ProjectFunctions.ActionsChanged(); } OnPropertyChanged(propertyName); } catch (Exception generalException) { MessageFunctions.Error("Error processing action update", generalException); } }