/// <summary> /// Validate if the user selected folders that meets the reqiuerments /// </summary> /// <param name="newFolder">folder to check</param> /// <param name="foldersToRemove">folders that need to be removed</param> /// <returns></returns> private bool ValidateFolders(string newFolder, List <string> foldersToRemove) { // Iterate through all of the folders that are already in our data for (int i = 0; i < SourceFolders.Count; ++i) { var exisitingFolderToBackup = SourceFolders[i].FolderInfo.FullPath; if (SourceFolders.Where(sf => sf.FolderInfo.FullPath == newFolder).FirstOrDefault() != null) { _DialogService.ShowMessageBox(newFolder + " already exists in the list!"); return(false); } if (Helpers.IsSubFolder(exisitingFolderToBackup, newFolder)) { _DialogService.ShowMessageBox(newFolder + " is a subfolder of " + exisitingFolderToBackup + "."); return(false); } if (Helpers.IsSubFolder(newFolder, exisitingFolderToBackup)) { foldersToRemove.Add(exisitingFolderToBackup); } } return(true); }
/// <summary> /// Remove folder from <see cref="SourceFolders"/> /// </summary> /// <param name="folder"></param> /// TODO: Use dictionary instead? public void RemoveFolder(string folder) { // Find the item by the name of the folder SourceFolder item = SourceFolders.Where(sf => sf.FolderInfo.FullPath == folder).FirstOrDefault(); // Check if the item was found if (item != null) { // Remove the item from the list SourceFolders.Remove(item); } }