/// <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: "); } }