private bool RemoveFolderFromTree(PresetFolderViewModel folderToSearchIn, PresetFolderViewModel folderToRemove) { if (folderToSearchIn.SubFolders.Contains(folderToRemove)) { folderToSearchIn.RemoveSubfolder(folderToRemove); return(true); } foreach (PresetFolderViewModel folder in folderToSearchIn.SubFolders) { if (this.RemoveFolderFromTree(folder, folderToRemove)) { return(true); } } return(false); }
public void RenameFolder(PresetFolderViewModel folderViewModel) { var dialogVM = new ChooseNameViewModel(EncodingRes.ChooseNewFolderName, new List <string>()); dialogVM.Name = folderViewModel.Name; var windowManager = Ioc.Get <IWindowManager>(); windowManager.OpenDialog(dialogVM, windowManager.Find <EncodingWindowViewModel>()); if (dialogVM.DialogResult) { string newName = dialogVM.Name; if (newName != folderViewModel.Name) { PresetFolderStorage.RenameFolder(folderViewModel.Id, newName); folderViewModel.Name = newName; // Remove and re-add the folder to get the folder in the right order. PresetFolderViewModel parentFolder = folderViewModel.Parent; parentFolder.RemoveSubfolder(folderViewModel); parentFolder.AddSubfolder(folderViewModel); } } }