From 7cd41a6ed62c46006307add9de92e0b329bd0edc Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 21 Feb 2014 00:04:11 -0500 Subject: easier user library setup --- MediaBrowser.ServerApplication/ApplicationHost.cs | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'MediaBrowser.ServerApplication') diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 85aeeb129d..895a8d9b92 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -252,6 +252,14 @@ namespace MediaBrowser.ServerApplication private void DeleteDeprecatedModules() { + try + { + MigrateUserFolders(); + } + catch (IOException ex) + { + } + try { File.Delete(Path.Combine(ApplicationPaths.PluginsPath, "MBPhoto.dll")); @@ -319,6 +327,35 @@ namespace MediaBrowser.ServerApplication }); } + private void MigrateUserFolders() + { + var rootPath = ApplicationPaths.RootFolderPath; + + var folders = new DirectoryInfo(rootPath).EnumerateDirectories("*", SearchOption.TopDirectoryOnly).Where(i => !string.Equals(i.Name, "default", StringComparison.OrdinalIgnoreCase)) + .ToList(); + + foreach (var folder in folders) + { + MigrateUserFolder(folder); + } + } + + private void MigrateUserFolder(DirectoryInfo folder) + { + var foldersInDefault = new DirectoryInfo(ApplicationPaths.DefaultUserViewsPath).EnumerateDirectories("*", SearchOption.TopDirectoryOnly).ToList(); + + var foldersInUserView = folder.EnumerateDirectories("*", SearchOption.TopDirectoryOnly).ToList(); + + var foldersToMove = foldersInUserView.Where(i => !foldersInDefault.Any(f => string.Equals(f.Name, i.Name, StringComparison.OrdinalIgnoreCase))).ToList(); + + foreach (var folderToMove in foldersToMove) + { + folderToMove.MoveTo(Path.Combine(ApplicationPaths.DefaultUserViewsPath, folderToMove.Name)); + } + + Directory.Delete(folder.FullName, true); + } + /// /// Registers resources that classes will depend on /// -- cgit v1.2.3