From be7918e5f68f67ed32a50c2d86ee9cae79cf2b93 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Oct 2013 10:40:14 -0400 Subject: fixes #567 - Deprecate native shortcut code --- .../Library/LibraryManager.cs | 15 +++++++++------ .../Library/ResolverHelper.cs | 6 ++++-- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index cbe15aa62..eed191aab 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -169,6 +169,8 @@ namespace MediaBrowser.Server.Implementations.Library private readonly ConcurrentDictionary _userRootFolders = new ConcurrentDictionary(); + private readonly IFileSystem _fileSystem; + /// /// Initializes a new instance of the class. /// @@ -177,7 +179,7 @@ namespace MediaBrowser.Server.Implementations.Library /// The user manager. /// The configuration manager. /// The user data repository. - public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager, IUserDataManager userDataRepository, Func directoryWatchersFactory) + public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager, IUserDataManager userDataRepository, Func directoryWatchersFactory, IFileSystem fileSystem) { _logger = logger; _taskManager = taskManager; @@ -185,6 +187,7 @@ namespace MediaBrowser.Server.Implementations.Library ConfigurationManager = configurationManager; _userDataRepository = userDataRepository; _directoryWatchersFactory = directoryWatchersFactory; + _fileSystem = fileSystem; ByReferenceItems = new ConcurrentDictionary(); ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated; @@ -417,7 +420,7 @@ namespace MediaBrowser.Server.Implementations.Library if (item != null) { - ResolverHelper.SetInitialItemValues(item, args); + ResolverHelper.SetInitialItemValues(item, args, _fileSystem); // Now handle the issue with posibly having the same item referenced from multiple physical // places within the library. Be sure we always end up with just one instance. @@ -482,7 +485,7 @@ namespace MediaBrowser.Server.Implementations.Library // When resolving the root, we need it's grandchildren (children of user views) var flattenFolderDepth = isPhysicalRoot ? 2 : 0; - args.FileSystemDictionary = FileData.GetFilteredFileSystemEntries(args.Path, _logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf); + args.FileSystemDictionary = FileData.GetFilteredFileSystemEntries(args.Path, _fileSystem, _logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf); // Need to remove subpaths that may have been resolved from shortcuts // Example: if \\server\movies exists, then strip out \\server\movies\action @@ -701,7 +704,7 @@ namespace MediaBrowser.Server.Implementations.Library throw new ArgumentNullException(); } - var validFilename = FileSystem.GetValidFilename(name).Trim(); + var validFilename = _fileSystem.GetValidFilename(name).Trim(); string subFolderPrefix = null; @@ -1066,7 +1069,7 @@ namespace MediaBrowser.Server.Implementations.Library Name = Path.GetFileName(dir), Locations = Directory.EnumerateFiles(dir, "*.mblink", SearchOption.TopDirectoryOnly) - .Select(FileSystem.ResolveShortcut) + .Select(_fileSystem.ResolveShortcut) .OrderBy(i => i) .ToList(), @@ -1150,7 +1153,7 @@ namespace MediaBrowser.Server.Implementations.Library try { // Try to resolve the path into a video - video = ResolvePath(FileSystem.GetFileSystemInfo(info.Path)) as Video; + video = ResolvePath(_fileSystem.GetFileSystemInfo(info.Path)) as Video; if (video == null) { diff --git a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs index a6b13f8dd..22bd2e0e6 100644 --- a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs +++ b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs @@ -1,5 +1,6 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; using System; @@ -18,7 +19,8 @@ namespace MediaBrowser.Server.Implementations.Library /// /// The item. /// The args. - public static void SetInitialItemValues(BaseItem item, ItemResolveArgs args) + /// The file system. + public static void SetInitialItemValues(BaseItem item, ItemResolveArgs args, IFileSystem fileSystem) { item.ResetResolveArgs(args); @@ -48,7 +50,7 @@ namespace MediaBrowser.Server.Implementations.Library item.DontFetchMeta = item.Path.IndexOf("[dontfetchmeta]", StringComparison.OrdinalIgnoreCase) != -1; // Make sure DateCreated and DateModified have values - EntityResolutionHelper.EnsureDates(item, args, true); + EntityResolutionHelper.EnsureDates(fileSystem, item, args, true); } /// -- cgit v1.2.3