public void SubmitCharacterCrowdRename(object state) { if (this.OriginalName != null) { string updatedName = ControlUtilities.GetTextFromControlObject(state); bool isDuplicate = false; if (IsUpdatingCharacter) { isDuplicate = SelectedCharacterCrowdMember.CheckIfNameIsDuplicate(updatedName, null); } else { isDuplicate = SelectedCrowdMember.CheckIfNameIsDuplicate(updatedName, this.CrowdRepository.Crowds); } if (!isDuplicate) { RenameCrowdMember(updatedName); OnEditModeLeave(state, null); } else { System.Windows.MessageBox.Show("The name already exists. Please choose another name!"); this.CancelEditMode(state); } } }
public void RenameCrowdMember(string updatedName) { CrowdMember renamedMember = null; if (this.OriginalName == updatedName) { OriginalName = null; return; } if (this.IsUpdatingCharacter) { if (SelectedCharacterCrowdMember == null) { return; } SelectedCharacterCrowdMember.Rename(updatedName); renamedMember = SelectedCharacterCrowdMember; this.SelectedCrowdMember.SortMembers(); this.OriginalName = null; } else { if (SelectedCrowdMember == null) { return; } SelectedCrowdMember.Rename(updatedName); renamedMember = SelectedCrowdMember; this.CrowdRepository.SortCrowds(); this.OriginalName = null; } this.EventAggregator.PublishOnUIThread(new RenameCrowdMemberEvent(renamedMember, this)); }
public void DeleteCrowdMember() { // Lock character crowd Tree from updating; this.LockTreeUpdate(true); CrowdMember deletedMember = null; // Determine if Character or Crowd is to be deleted if (SelectedCharacterCrowdMember != null) // Delete Character { if (SelectedCharacterCrowdMember.RosterParent != null && SelectedCharacterCrowdMember.RosterParent.Name == SelectedCrowdMember.Name) { deletedMember = SelectedCharacterCrowdMember; } // Delete the Character from all occurances of this crowd SelectedCrowdMember.RemoveMember(SelectedCharacterCrowdMember); } else // Delete Crowd { //If it is a nested crowd, just delete it from the parent if (this.SelectedCrowdParent != null) { SelectedCrowdParent.RemoveMember(SelectedCrowdMember); } else // Delete it from the repo altogether { this.CrowdRepository.RemoveCrowd(SelectedCrowdMember); deletedMember = SelectedCrowdMember; } } // UnLock character crowd Tree from updating; this.LockTreeUpdate(false); // Update character crowd if necessary if (this.lastCharacterCrowdStateToUpdate != null) { this.SetSelectedCrowdMember(lastCharacterCrowdStateToUpdate); this.lastCharacterCrowdStateToUpdate = null; } // Fire event so that roster and char editor can update themselves if (deletedMember != null) { this.EventAggregator.PublishOnUIThread(new DeleteCrowdMemberEvent(deletedMember)); } if (this.SelectedCrowdMember != null) { OnExpansionUpdateNeeded(this.SelectedCrowdMember, new CustomEventArgs <ExpansionUpdateEvent> { Value = ExpansionUpdateEvent.Delete }); } }