/// <summary>
        /// Removes the specified root folders from the system
        /// </summary>
        /// <param name="rootFolder">Root folders being removed from the system</param>
        private void DeleteRootFolders(RootFolder[] toDelete)
        {
            try
            {
                List <RootFolder> rootFolders = new List <RootFolder>(RootFolders);
                List <RootFolder> lstToDelete = new List <RootFolder>(toDelete);

                while (lstToDelete.Count > 0)
                {
                    RootFolder rootFolder = lstToDelete[0];
                    rootFolder.Delete();

                    rootFolders.Remove(rootFolder);
                    lstToDelete.Remove(rootFolder);

                    //must update priority each time to reflect automatic database change
                    for (Int16 priority = 0; priority < rootFolders.Count; priority++)
                    {
                        rootFolders[priority].Priority = priority;
                    }
                }

                List <SortDescription> sortDescriptions = new List <SortDescription>(SortDescriptions);

                RootFolders = rootFolders.ToArray();

                SortDescriptions.Clear();

                foreach (SortDescription sortDescription in sortDescriptions)
                {
                    SortDescriptions.Add(sortDescription);
                }
            }
            catch (System.Exception e)
            {
                GeneralMethods.MessageBoxException(e, "Could not delete root folders: ");
            }
        }