コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
            }
        }