Prechádzať zdrojové kódy

Remove the need for NullLogger

Bond_009 6 rokov pred
rodič
commit
b7ebb67cbb
28 zmenil súbory, kde vykonal 62 pridanie a 93 odobranie
  1. 2 12
      Emby.Dlna/Didl/DidlBuilder.cs
  2. 2 12
      Emby.Dlna/PlayTo/PlayToController.cs
  3. 2 3
      Emby.Server.Implementations/Channels/ChannelManager.cs
  4. 5 5
      Emby.Server.Implementations/Collections/CollectionManager.cs
  5. 6 2
      Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
  6. 1 1
      Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
  7. 7 7
      Emby.Server.Implementations/Library/LibraryManager.cs
  8. 2 1
      Emby.Server.Implementations/Library/MediaSourceManager.cs
  9. 1 1
      Emby.Server.Implementations/Library/UserManager.cs
  10. 1 1
      Emby.Server.Implementations/Library/Validators/PeopleValidator.cs
  11. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
  12. 1 1
      Emby.Server.Implementations/LiveTv/LiveTvManager.cs
  13. 3 3
      Emby.Server.Implementations/Playlists/PlaylistManager.cs
  14. 1 1
      Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs
  15. 3 3
      Emby.Server.Implementations/Services/ServiceController.cs
  16. 3 4
      Emby.Server.Implementations/Services/ServiceHandler.cs
  17. 4 10
      Emby.Server.Implementations/Services/ServicePath.cs
  18. 1 1
      MediaBrowser.Api/ItemLookupService.cs
  19. 1 1
      MediaBrowser.Api/ItemUpdateService.cs
  20. 1 1
      MediaBrowser.Api/Subtitles/SubtitleService.cs
  21. 1 1
      MediaBrowser.Api/UserLibrary/UserLibraryService.cs
  22. 1 1
      MediaBrowser.Controller/Entities/BaseItem.cs
  23. 0 5
      MediaBrowser.Controller/Providers/DirectoryService.cs
  24. 0 5
      MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs
  25. 10 2
      MediaBrowser.Providers/Manager/ProviderManager.cs
  26. 1 1
      MediaBrowser.Providers/TV/DummySeasonProvider.cs
  27. 1 1
      MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
  28. 0 6
      SocketHttpListener/Net/HttpListener.cs

+ 2 - 12
Emby.Dlna/Didl/DidlBuilder.cs

@@ -173,16 +173,6 @@ namespace Emby.Dlna.Didl
             writer.WriteFullEndElement();
             writer.WriteFullEndElement();
         }
         }
 
 
-        private ILogger GetStreamBuilderLogger(DlnaOptions options)
-        {
-            if (options.EnableDebugLog)
-            {
-                return _logger;
-            }
-
-            return null; // TODO: @bond NullLogger
-        }
-
         private string GetMimeType(string input)
         private string GetMimeType(string input)
         {
         {
             var mime = MimeTypes.GetMimeType(input);
             var mime = MimeTypes.GetMimeType(input);
@@ -202,7 +192,7 @@ namespace Emby.Dlna.Didl
             {
             {
                 var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user);
                 var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user);
 
 
-                streamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger(options)).BuildVideoItem(new VideoOptions
+                streamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildVideoItem(new VideoOptions
                 {
                 {
                     ItemId = video.Id,
                     ItemId = video.Id,
                     MediaSources = sources.ToArray(),
                     MediaSources = sources.ToArray(),
@@ -509,7 +499,7 @@ namespace Emby.Dlna.Didl
             {
             {
                 var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user);
                 var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user);
 
 
-                streamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger(options)).BuildAudioItem(new AudioOptions
+                streamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildAudioItem(new AudioOptions
                 {
                 {
                     ItemId = audio.Id,
                     ItemId = audio.Id,
                     MediaSources = sources.ToArray(),
                     MediaSources = sources.ToArray(),

+ 2 - 12
Emby.Dlna/PlayTo/PlayToController.cs

@@ -532,23 +532,13 @@ namespace Emby.Dlna.PlayTo
             return null;
             return null;
         }
         }
 
 
-        private ILogger GetStreamBuilderLogger()
-        {
-            if (_config.GetDlnaConfiguration().EnableDebugLog)
-            {
-                return _logger;
-            }
-
-            return null; // TODO: @bond NullLogger
-        }
-
         private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaSourceInfo> mediaSources, DeviceProfile profile, string deviceId, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
         private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaSourceInfo> mediaSources, DeviceProfile profile, string deviceId, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
         {
         {
             if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
             if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
             {
             {
                 return new PlaylistItem
                 return new PlaylistItem
                 {
                 {
-                    StreamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger()).BuildVideoItem(new VideoOptions
+                    StreamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildVideoItem(new VideoOptions
                     {
                     {
                         ItemId = item.Id,
                         ItemId = item.Id,
                         MediaSources = mediaSources.ToArray(),
                         MediaSources = mediaSources.ToArray(),
@@ -568,7 +558,7 @@ namespace Emby.Dlna.PlayTo
             {
             {
                 return new PlaylistItem
                 return new PlaylistItem
                 {
                 {
-                    StreamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger()).BuildAudioItem(new AudioOptions
+                    StreamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildAudioItem(new AudioOptions
                     {
                     {
                         ItemId = item.Id,
                         ItemId = item.Id,
                         MediaSources = mediaSources.ToArray(),
                         MediaSources = mediaSources.ToArray(),

+ 2 - 3
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -484,10 +484,9 @@ namespace Emby.Server.Implementations.Channels
                 _libraryManager.CreateItem(item, null);
                 _libraryManager.CreateItem(item, null);
             }
             }
 
 
-            await item.RefreshMetadata(new MetadataRefreshOptions(_fileSystem)
+            await item.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
             {
             {
                 ForceSave = !isNew && forceUpdate
                 ForceSave = !isNew && forceUpdate
-
             }, cancellationToken);
             }, cancellationToken);
 
 
             return item;
             return item;
@@ -1178,7 +1177,7 @@ namespace Emby.Server.Implementations.Channels
 
 
             if (isNew || forceUpdate || item.DateLastRefreshed == default(DateTime))
             if (isNew || forceUpdate || item.DateLastRefreshed == default(DateTime))
             {
             {
-                _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.Normal);
+                _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.Normal);
             }
             }
 
 
             return item;
             return item;

+ 5 - 5
Emby.Server.Implementations/Collections/CollectionManager.cs

@@ -143,7 +143,7 @@ namespace Emby.Server.Implementations.Collections
 
 
                 if (options.ItemIdList.Length > 0)
                 if (options.ItemIdList.Length > 0)
                 {
                 {
-                    AddToCollection(collection.Id, options.ItemIdList, false, new MetadataRefreshOptions(_fileSystem)
+                    AddToCollection(collection.Id, options.ItemIdList, false, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                     {
                     {
                         // The initial adding of items is going to create a local metadata file
                         // The initial adding of items is going to create a local metadata file
                         // This will cause internet metadata to be skipped as a result
                         // This will cause internet metadata to be skipped as a result
@@ -152,7 +152,7 @@ namespace Emby.Server.Implementations.Collections
                 }
                 }
                 else
                 else
                 {
                 {
-                    _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.High);
+                    _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.High);
                 }
                 }
 
 
                 EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs
                 EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs
@@ -173,12 +173,12 @@ namespace Emby.Server.Implementations.Collections
 
 
         public void AddToCollection(Guid collectionId, IEnumerable<string> ids)
         public void AddToCollection(Guid collectionId, IEnumerable<string> ids)
         {
         {
-            AddToCollection(collectionId, ids, true, new MetadataRefreshOptions(_fileSystem));
+            AddToCollection(collectionId, ids, true, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)));
         }
         }
 
 
         public void AddToCollection(Guid collectionId, IEnumerable<Guid> ids)
         public void AddToCollection(Guid collectionId, IEnumerable<Guid> ids)
         {
         {
-            AddToCollection(collectionId, ids.Select(i => i.ToString("N")), true, new MetadataRefreshOptions(_fileSystem));
+            AddToCollection(collectionId, ids.Select(i => i.ToString("N")), true, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)));
         }
         }
 
 
         private void AddToCollection(Guid collectionId, IEnumerable<string> ids, bool fireEvent, MetadataRefreshOptions refreshOptions)
         private void AddToCollection(Guid collectionId, IEnumerable<string> ids, bool fireEvent, MetadataRefreshOptions refreshOptions)
@@ -283,7 +283,7 @@ namespace Emby.Server.Implementations.Collections
             }
             }
 
 
             collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
             collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
-            _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem)
+            _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
             {
             {
                 ForceSave = true
                 ForceSave = true
             }, RefreshPriority.High);
             }, RefreshPriority.High);

+ 6 - 2
Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs

@@ -7,6 +7,7 @@ using System.Linq;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
+using Microsoft.Extensions.Logging;
 
 
 namespace Emby.Server.Implementations.EntryPoints
 namespace Emby.Server.Implementations.EntryPoints
 {
 {
@@ -15,10 +16,12 @@ namespace Emby.Server.Implementations.EntryPoints
     /// </summary>
     /// </summary>
     public class RefreshUsersMetadata : IScheduledTask, IConfigurableScheduledTask
     public class RefreshUsersMetadata : IScheduledTask, IConfigurableScheduledTask
     {
     {
+        private readonly ILogger _logger;
         /// <summary>
         /// <summary>
         /// The _user manager
         /// The _user manager
         /// </summary>
         /// </summary>
         private readonly IUserManager _userManager;
         private readonly IUserManager _userManager;
+
         private IFileSystem _fileSystem;
         private IFileSystem _fileSystem;
 
 
         public string Name => "Refresh Users";
         public string Name => "Refresh Users";
@@ -41,8 +44,9 @@ namespace Emby.Server.Implementations.EntryPoints
         /// <summary>
         /// <summary>
         /// Initializes a new instance of the <see cref="RefreshUsersMetadata" /> class.
         /// Initializes a new instance of the <see cref="RefreshUsersMetadata" /> class.
         /// </summary>
         /// </summary>
-        public RefreshUsersMetadata(IUserManager userManager, IFileSystem fileSystem)
+        public RefreshUsersMetadata(ILogger logger, IUserManager userManager, IFileSystem fileSystem)
         {
         {
+            _logger = logger;
             _userManager = userManager;
             _userManager = userManager;
             _fileSystem = fileSystem;
             _fileSystem = fileSystem;
         }
         }
@@ -55,7 +59,7 @@ namespace Emby.Server.Implementations.EntryPoints
             {
             {
                 cancellationToken.ThrowIfCancellationRequested();
                 cancellationToken.ThrowIfCancellationRequested();
 
 
-                await user.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);
+                await user.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
             }
             }
         }
         }
 
 

+ 1 - 1
Emby.Server.Implementations/HttpServer/HttpListenerHost.cs

@@ -718,7 +718,7 @@ namespace Emby.Server.Implementations.HttpServer
             }
             }
 
 
             string contentType;
             string contentType;
-            var restPath = ServiceHandler.FindMatchingRestPath(httpReq.HttpMethod, pathInfo, _logger, out contentType);
+            var restPath = ServiceHandler.FindMatchingRestPath(httpReq.HttpMethod, pathInfo, out contentType);
 
 
             if (restPath != null)
             if (restPath != null)
             {
             {

+ 7 - 7
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -1065,11 +1065,11 @@ namespace Emby.Server.Implementations.Library
             await RootFolder.RefreshMetadata(cancellationToken).ConfigureAwait(false);
             await RootFolder.RefreshMetadata(cancellationToken).ConfigureAwait(false);
 
 
             // Start by just validating the children of the root, but go no further
             // Start by just validating the children of the root, but go no further
-            await RootFolder.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: false);
+            await RootFolder.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: false);
 
 
             await GetUserRootFolder().RefreshMetadata(cancellationToken).ConfigureAwait(false);
             await GetUserRootFolder().RefreshMetadata(cancellationToken).ConfigureAwait(false);
 
 
-            await GetUserRootFolder().ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: false).ConfigureAwait(false);
+            await GetUserRootFolder().ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: false).ConfigureAwait(false);
 
 
             // Quickly scan CollectionFolders for changes
             // Quickly scan CollectionFolders for changes
             foreach (var folder in GetUserRootFolder().Children.OfType<Folder>().ToList())
             foreach (var folder in GetUserRootFolder().Children.OfType<Folder>().ToList())
@@ -1089,7 +1089,7 @@ namespace Emby.Server.Implementations.Library
             innerProgress.RegisterAction(pct => progress.Report(pct * .96));
             innerProgress.RegisterAction(pct => progress.Report(pct * .96));
 
 
             // Now validate the entire media library
             // Now validate the entire media library
-            await RootFolder.ValidateChildren(innerProgress, cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: true).ConfigureAwait(false);
+            await RootFolder.ValidateChildren(innerProgress, cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: true).ConfigureAwait(false);
 
 
             progress.Report(96);
             progress.Report(96);
 
 
@@ -2176,7 +2176,7 @@ namespace Emby.Server.Implementations.Library
             if (refresh)
             if (refresh)
             {
             {
                 item.UpdateToRepository(ItemUpdateType.MetadataImport, CancellationToken.None);
                 item.UpdateToRepository(ItemUpdateType.MetadataImport, CancellationToken.None);
-                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.Normal);
+                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.Normal);
             }
             }
 
 
             return item;
             return item;
@@ -2231,7 +2231,7 @@ namespace Emby.Server.Implementations.Library
 
 
             if (refresh)
             if (refresh)
             {
             {
-                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
+                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                 {
                 {
                     // Need to force save to increment DateLastSaved
                     // Need to force save to increment DateLastSaved
                     ForceSave = true
                     ForceSave = true
@@ -2295,7 +2295,7 @@ namespace Emby.Server.Implementations.Library
 
 
             if (refresh)
             if (refresh)
             {
             {
-                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
+                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                 {
                 {
                     // Need to force save to increment DateLastSaved
                     // Need to force save to increment DateLastSaved
                     ForceSave = true
                     ForceSave = true
@@ -2369,7 +2369,7 @@ namespace Emby.Server.Implementations.Library
 
 
             if (refresh)
             if (refresh)
             {
             {
-                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
+                _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                 {
                 {
                     // Need to force save to increment DateLastSaved
                     // Need to force save to increment DateLastSaved
                     ForceSave = true
                     ForceSave = true

+ 2 - 1
Emby.Server.Implementations/Library/MediaSourceManager.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Controller.Persistence;
 using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Entities;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
@@ -127,7 +128,7 @@ namespace Emby.Server.Implementations.Library
 
 
             if (allowMediaProbe && mediaSources[0].Type != MediaSourceType.Placeholder && !mediaSources[0].MediaStreams.Any(i => i.Type == MediaStreamType.Audio || i.Type == MediaStreamType.Video))
             if (allowMediaProbe && mediaSources[0].Type != MediaSourceType.Placeholder && !mediaSources[0].MediaStreams.Any(i => i.Type == MediaStreamType.Audio || i.Type == MediaStreamType.Video))
             {
             {
-                await item.RefreshMetadata(new MediaBrowser.Controller.Providers.MetadataRefreshOptions(_fileSystem)
+                await item.RefreshMetadata(new MediaBrowser.Controller.Providers.MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                 {
                 {
                     EnableRemoteContentProbe = true,
                     EnableRemoteContentProbe = true,
                     MetadataRefreshMode = MediaBrowser.Controller.Providers.MetadataRefreshMode.FullRefresh
                     MetadataRefreshMode = MediaBrowser.Controller.Providers.MetadataRefreshMode.FullRefresh

+ 1 - 1
Emby.Server.Implementations/Library/UserManager.cs

@@ -613,7 +613,7 @@ namespace Emby.Server.Implementations.Library
         {
         {
             foreach (var user in Users)
             foreach (var user in Users)
             {
             {
-                await user.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);
+                await user.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
             }
             }
         }
         }
 
 

+ 1 - 1
Emby.Server.Implementations/Library/Validators/PeopleValidator.cs

@@ -64,7 +64,7 @@ namespace Emby.Server.Implementations.Library.Validators
                 {
                 {
                     var item = _libraryManager.GetPerson(person);
                     var item = _libraryManager.GetPerson(person);
 
 
-                    var options = new MetadataRefreshOptions(_fileSystem)
+                    var options = new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                     {
                     {
                         ImageRefreshMode = MetadataRefreshMode.ValidationOnly,
                         ImageRefreshMode = MetadataRefreshMode.ValidationOnly,
                         MetadataRefreshMode = MetadataRefreshMode.ValidationOnly
                         MetadataRefreshMode = MetadataRefreshMode.ValidationOnly

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -1526,7 +1526,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             {
             {
                 _logger.LogInformation("Refreshing recording parent {0}", item.Path);
                 _logger.LogInformation("Refreshing recording parent {0}", item.Path);
 
 
-                _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
+                _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                 {
                 {
                     RefreshPaths = new string[]
                     RefreshPaths = new string[]
                     {
                     {

+ 1 - 1
Emby.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -1292,7 +1292,7 @@ namespace Emby.Server.Implementations.LiveTv
                     }
                     }
 
 
                     //currentChannel.UpdateToRepository(ItemUpdateType.MetadataImport, cancellationToken);
                     //currentChannel.UpdateToRepository(ItemUpdateType.MetadataImport, cancellationToken);
-                    await currentChannel.RefreshMetadata(new MetadataRefreshOptions(_fileSystem)
+                    await currentChannel.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
                     {
                     {
                         ForceSave = true
                         ForceSave = true
 
 

+ 3 - 3
Emby.Server.Implementations/Playlists/PlaylistManager.cs

@@ -136,7 +136,7 @@ namespace Emby.Server.Implementations.Playlists
 
 
                 parentFolder.AddChild(playlist, CancellationToken.None);
                 parentFolder.AddChild(playlist, CancellationToken.None);
 
 
-                await playlist.RefreshMetadata(new MetadataRefreshOptions(_fileSystem) { ForceSave = true }, CancellationToken.None)
+                await playlist.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)) { ForceSave = true }, CancellationToken.None)
                     .ConfigureAwait(false);
                     .ConfigureAwait(false);
 
 
                 if (options.ItemIdList.Length > 0)
                 if (options.ItemIdList.Length > 0)
@@ -217,7 +217,7 @@ namespace Emby.Server.Implementations.Playlists
                 SavePlaylistFile(playlist);
                 SavePlaylistFile(playlist);
             }
             }
 
 
-            _providerManager.QueueRefresh(playlist.Id, new MetadataRefreshOptions(_fileSystem)
+            _providerManager.QueueRefresh(playlist.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
             {
             {
                 ForceSave = true
                 ForceSave = true
 
 
@@ -250,7 +250,7 @@ namespace Emby.Server.Implementations.Playlists
                 SavePlaylistFile(playlist);
                 SavePlaylistFile(playlist);
             }
             }
 
 
-            _providerManager.QueueRefresh(playlist.Id, new MetadataRefreshOptions(_fileSystem)
+            _providerManager.QueueRefresh(playlist.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
             {
             {
                 ForceSave = true
                 ForceSave = true
 
 

+ 1 - 1
Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs

@@ -121,7 +121,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
                 previouslyFailedImages = new List<string>();
                 previouslyFailedImages = new List<string>();
             }
             }
 
 
-            var directoryService = new DirectoryService(_fileSystem);
+            var directoryService = new DirectoryService(_logger, _fileSystem);
 
 
             foreach (var video in videos)
             foreach (var video in videos)
             {
             {

+ 3 - 3
Emby.Server.Implementations/Services/ServiceController.cs

@@ -99,7 +99,7 @@ namespace Emby.Server.Implementations.Services
             pathsAtFirstMatch.Add(restPath);
             pathsAtFirstMatch.Add(restPath);
         }
         }
 
 
-        public RestPath GetRestPathForRequest(string httpMethod, string pathInfo, ILogger logger)
+        public RestPath GetRestPathForRequest(string httpMethod, string pathInfo)
         {
         {
             var matchUsingPathParts = RestPath.GetPathPartsForMatching(pathInfo);
             var matchUsingPathParts = RestPath.GetPathPartsForMatching(pathInfo);
 
 
@@ -117,7 +117,7 @@ namespace Emby.Server.Implementations.Services
                 RestPath bestMatch = null;
                 RestPath bestMatch = null;
                 foreach (var restPath in firstMatches)
                 foreach (var restPath in firstMatches)
                 {
                 {
-                    var score = restPath.MatchScore(httpMethod, matchUsingPathParts, logger);
+                    var score = restPath.MatchScore(httpMethod, matchUsingPathParts);
                     if (score > bestScore)
                     if (score > bestScore)
                     {
                     {
                         bestScore = score;
                         bestScore = score;
@@ -140,7 +140,7 @@ namespace Emby.Server.Implementations.Services
                 RestPath bestMatch = null;
                 RestPath bestMatch = null;
                 foreach (var restPath in firstMatches)
                 foreach (var restPath in firstMatches)
                 {
                 {
-                    var score = restPath.MatchScore(httpMethod, matchUsingPathParts, logger);
+                    var score = restPath.MatchScore(httpMethod, matchUsingPathParts);
                     if (score > bestScore)
                     if (score > bestScore)
                     {
                     {
                         bestScore = score;
                         bestScore = score;

+ 3 - 4
Emby.Server.Implementations/Services/ServiceHandler.cs

@@ -24,11 +24,11 @@ namespace Emby.Server.Implementations.Services
             return Task.FromResult(host.CreateInstance(requestType)); 
             return Task.FromResult(host.CreateInstance(requestType)); 
         }
         }
 
 
-        public static RestPath FindMatchingRestPath(string httpMethod, string pathInfo, ILogger logger, out string contentType)
+        public static RestPath FindMatchingRestPath(string httpMethod, string pathInfo, out string contentType)
         {
         {
             pathInfo = GetSanitizedPathInfo(pathInfo, out contentType);
             pathInfo = GetSanitizedPathInfo(pathInfo, out contentType);
 
 
-            return ServiceController.Instance.GetRestPathForRequest(httpMethod, pathInfo, logger);
+            return ServiceController.Instance.GetRestPathForRequest(httpMethod, pathInfo);
         }
         }
 
 
         public static string GetSanitizedPathInfo(string pathInfo, out string contentType)
         public static string GetSanitizedPathInfo(string pathInfo, out string contentType)
@@ -63,8 +63,7 @@ namespace Emby.Server.Implementations.Services
             if (this.RestPath == null)
             if (this.RestPath == null)
             {
             {
                 string contentType;
                 string contentType;
-                // TODO: @bond NullLogger
-                this.RestPath = FindMatchingRestPath(httpMethod, pathInfo, null, out contentType);
+                this.RestPath = FindMatchingRestPath(httpMethod, pathInfo, out contentType);
 
 
                 if (contentType != null)
                 if (contentType != null)
                     ResponseContentType = contentType;
                     ResponseContentType = contentType;

+ 4 - 10
Emby.Server.Implementations/Services/ServicePath.cs

@@ -309,10 +309,10 @@ namespace Emby.Server.Implementations.Services
 
 
         private readonly Dictionary<string, string> propertyNamesMap = new Dictionary<string, string>();
         private readonly Dictionary<string, string> propertyNamesMap = new Dictionary<string, string>();
 
 
-        public int MatchScore(string httpMethod, string[] withPathInfoParts, ILogger logger)
+        public int MatchScore(string httpMethod, string[] withPathInfoParts)
         {
         {
             int wildcardMatchCount;
             int wildcardMatchCount;
-            var isMatch = IsMatch(httpMethod, withPathInfoParts, logger, out wildcardMatchCount);
+            var isMatch = IsMatch(httpMethod, withPathInfoParts, out wildcardMatchCount);
             if (!isMatch)
             if (!isMatch)
             {
             {
                 return -1;
                 return -1;
@@ -348,31 +348,27 @@ namespace Emby.Server.Implementations.Services
         /// For performance withPathInfoParts should already be a lower case string
         /// For performance withPathInfoParts should already be a lower case string
         /// to minimize redundant matching operations.
         /// to minimize redundant matching operations.
         /// </summary>
         /// </summary>
-        public bool IsMatch(string httpMethod, string[] withPathInfoParts, ILogger logger, out int wildcardMatchCount)
+        public bool IsMatch(string httpMethod, string[] withPathInfoParts, out int wildcardMatchCount)
         {
         {
             wildcardMatchCount = 0;
             wildcardMatchCount = 0;
 
 
             if (withPathInfoParts.Length != this.PathComponentsCount && !this.IsWildCardPath)
             if (withPathInfoParts.Length != this.PathComponentsCount && !this.IsWildCardPath)
             {
             {
-                //logger.LogInformation("withPathInfoParts mismatch for {0} for {1}", httpMethod, string.Join("/", withPathInfoParts));
-                return false;
+               return false;
             }
             }
 
 
             if (!Verbs.Contains(httpMethod, StringComparer.OrdinalIgnoreCase))
             if (!Verbs.Contains(httpMethod, StringComparer.OrdinalIgnoreCase))
             {
             {
-                //logger.LogInformation("allowsAllVerbs mismatch for {0} for {1} allowedverbs {2}", httpMethod, string.Join("/", withPathInfoParts), this.allowedVerbs);
                 return false;
                 return false;
             }
             }
 
 
             if (!ExplodeComponents(ref withPathInfoParts))
             if (!ExplodeComponents(ref withPathInfoParts))
             {
             {
-                //logger.LogInformation("ExplodeComponents mismatch for {0} for {1}", httpMethod, string.Join("/", withPathInfoParts));
                 return false;
                 return false;
             }
             }
 
 
             if (this.TotalComponentsCount != withPathInfoParts.Length && !this.IsWildCardPath)
             if (this.TotalComponentsCount != withPathInfoParts.Length && !this.IsWildCardPath)
             {
             {
-                //logger.LogInformation("TotalComponentsCount mismatch for {0} for {1}", httpMethod, string.Join("/", withPathInfoParts));
                 return false;
                 return false;
             }
             }
 
 
@@ -393,7 +389,6 @@ namespace Emby.Server.Implementations.Services
                         // Ensure there are still enough parts left to match the remainder
                         // Ensure there are still enough parts left to match the remainder
                         if ((withPathInfoParts.Length - pathIx) < (this.TotalComponentsCount - i - 1))
                         if ((withPathInfoParts.Length - pathIx) < (this.TotalComponentsCount - i - 1))
                         {
                         {
-                            //logger.LogInformation("withPathInfoParts length mismatch for {0} for {1}", httpMethod, string.Join("/", withPathInfoParts));
                             return false;
                             return false;
                         }
                         }
                     }
                     }
@@ -416,7 +411,6 @@ namespace Emby.Server.Implementations.Services
 
 
                     if (withPathInfoParts.Length <= pathIx || !LiteralsEqual(withPathInfoParts[pathIx], literalToMatch))
                     if (withPathInfoParts.Length <= pathIx || !LiteralsEqual(withPathInfoParts[pathIx], literalToMatch))
                     {
                     {
-                        //logger.LogInformation("withPathInfoParts2 length mismatch for {0} for {1}. not equals: {2} != {3}.", httpMethod, string.Join("/", withPathInfoParts), withPathInfoParts[pathIx], literalToMatch);
                         return false;
                         return false;
                     }
                     }
                     pathIx++;
                     pathIx++;

+ 1 - 1
MediaBrowser.Api/ItemLookupService.cs

@@ -240,7 +240,7 @@ namespace MediaBrowser.Api
             //item.ProductionYear = request.ProductionYear;
             //item.ProductionYear = request.ProductionYear;
             //item.Name = request.Name;
             //item.Name = request.Name;
 
 
-            return _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(_fileSystem)
+            return _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(new DirectoryService(Logger,  _fileSystem))
             {
             {
                 MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                 MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                 ImageRefreshMode = MetadataRefreshMode.FullRefresh,
                 ImageRefreshMode = MetadataRefreshMode.FullRefresh,

+ 1 - 1
MediaBrowser.Api/ItemUpdateService.cs

@@ -230,7 +230,7 @@ namespace MediaBrowser.Api
 
 
             if (displayOrderChanged)
             if (displayOrderChanged)
             {
             {
-                _providerManager.QueueRefresh(series.Id, new MetadataRefreshOptions(_fileSystem)
+                _providerManager.QueueRefresh(series.Id, new MetadataRefreshOptions(new DirectoryService(Logger, _fileSystem))
                 {
                 {
                     MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                     MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                     ImageRefreshMode = MetadataRefreshMode.FullRefresh,
                     ImageRefreshMode = MetadataRefreshMode.FullRefresh,

+ 1 - 1
MediaBrowser.Api/Subtitles/SubtitleService.cs

@@ -274,7 +274,7 @@ namespace MediaBrowser.Api.Subtitles
                     await _subtitleManager.DownloadSubtitles(video, request.SubtitleId, CancellationToken.None)
                     await _subtitleManager.DownloadSubtitles(video, request.SubtitleId, CancellationToken.None)
                         .ConfigureAwait(false);
                         .ConfigureAwait(false);
 
 
-                    _providerManager.QueueRefresh(video.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.High);
+                    _providerManager.QueueRefresh(video.Id, new MetadataRefreshOptions(new DirectoryService(Logger, _fileSystem)), RefreshPriority.High);
                 }
                 }
                 catch (Exception ex)
                 catch (Exception ex)
                 {
                 {

+ 1 - 1
MediaBrowser.Api/UserLibrary/UserLibraryService.cs

@@ -404,7 +404,7 @@ namespace MediaBrowser.Api.UserLibrary
 
 
                 if (!hasMetdata)
                 if (!hasMetdata)
                 {
                 {
-                    var options = new MetadataRefreshOptions(_fileSystem)
+                    var options = new MetadataRefreshOptions(new DirectoryService(Logger, _fileSystem))
                     {
                     {
                         MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                         MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
                         ImageRefreshMode = MetadataRefreshMode.FullRefresh,
                         ImageRefreshMode = MetadataRefreshMode.FullRefresh,

+ 1 - 1
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -2213,7 +2213,7 @@ namespace MediaBrowser.Controller.Entities
         /// <returns>Task.</returns>
         /// <returns>Task.</returns>
         public virtual void ChangedExternally()
         public virtual void ChangedExternally()
         {
         {
-            ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(FileSystem)
+            ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(new DirectoryService(Logger, FileSystem))
             {
             {
 
 
             }, RefreshPriority.High);
             }, RefreshPriority.High);

+ 0 - 5
MediaBrowser.Controller/Providers/DirectoryService.cs

@@ -26,11 +26,6 @@ namespace MediaBrowser.Controller.Providers
             _fileSystem = fileSystem;
             _fileSystem = fileSystem;
         }
         }
 
 
-        public DirectoryService(IFileSystem fileSystem)
-            : this(null, fileSystem) // TODO: @bond NullLogger
-        {
-        }
-
         public FileSystemMetadata[] GetFileSystemEntries(string path)
         public FileSystemMetadata[] GetFileSystemEntries(string path)
         {
         {
             FileSystemMetadata[] entries;
             FileSystemMetadata[] entries;

+ 0 - 5
MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs

@@ -24,11 +24,6 @@ namespace MediaBrowser.Controller.Providers
         public bool ForceSave { get; set; }
         public bool ForceSave { get; set; }
         public bool EnableRemoteContentProbe { get; set; }
         public bool EnableRemoteContentProbe { get; set; }
 
 
-        public MetadataRefreshOptions(IFileSystem fileSystem)
-			: this(new DirectoryService(null, fileSystem)) // TODO: @bond NullLogger
-        {
-        }
-
         public MetadataRefreshOptions(IDirectoryService directoryService)
         public MetadataRefreshOptions(IDirectoryService directoryService)
             : base(directoryService)
             : base(directoryService)
         {
         {

+ 10 - 2
MediaBrowser.Providers/Manager/ProviderManager.cs

@@ -329,7 +329,11 @@ namespace MediaBrowser.Providers.Manager
             var options = GetMetadataOptions(item);
             var options = GetMetadataOptions(item);
             var libraryOptions = _libraryManagerFactory().GetLibraryOptions(item);
             var libraryOptions = _libraryManagerFactory().GetLibraryOptions(item);
 
 
-            return GetImageProviders(item, libraryOptions, options, new ImageRefreshOptions(new DirectoryService(_logger, _fileSystem)), includeDisabled).OfType<IRemoteImageProvider>();
+            return GetImageProviders(item, libraryOptions, options,
+                    new ImageRefreshOptions(
+                        new DirectoryService(_logger, _fileSystem)),
+                    includeDisabled)
+                .OfType<IRemoteImageProvider>();
         }
         }
 
 
         private bool CanRefresh(IMetadataProvider provider, BaseItem item, LibraryOptions libraryOptions, MetadataOptions options, bool includeDisabled, bool forceEnableInternetMetadata)
         private bool CanRefresh(IMetadataProvider provider, BaseItem item, LibraryOptions libraryOptions, MetadataOptions options, bool includeDisabled, bool forceEnableInternetMetadata)
@@ -506,7 +510,11 @@ namespace MediaBrowser.Providers.Manager
 
 
             var libraryOptions = new LibraryOptions();
             var libraryOptions = new LibraryOptions();
 
 
-            var imageProviders = GetImageProviders(dummy, libraryOptions, options, new ImageRefreshOptions(new DirectoryService(_logger, _fileSystem)), true).ToList();
+            var imageProviders = GetImageProviders(dummy, libraryOptions, options,
+                                    new ImageRefreshOptions(
+                                        new DirectoryService(_logger, _fileSystem)),
+                                    true)
+                                .ToList();
 
 
             var pluginList = summary.Plugins.ToList();
             var pluginList = summary.Plugins.ToList();
 
 

+ 1 - 1
MediaBrowser.Providers/TV/DummySeasonProvider.cs

@@ -147,7 +147,7 @@ namespace MediaBrowser.Providers.TV
 
 
             series.AddChild(season, cancellationToken);
             series.AddChild(season, cancellationToken);
 
 
-            await season.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);
+            await season.RefreshMetadata(new MetadataRefreshOptions(new  DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
 
 
             return season;
             return season;
         }
         }

+ 1 - 1
MediaBrowser.Providers/TV/MissingEpisodeProvider.cs

@@ -414,7 +414,7 @@ namespace MediaBrowser.Providers.TV
 
 
             season.AddChild(episode, cancellationToken);
             season.AddChild(episode, cancellationToken);
 
 
-            await episode.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);
+            await episode.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 0 - 6
SocketHttpListener/Net/HttpListener.cs

@@ -58,12 +58,6 @@ namespace SocketHttpListener.Net
             auth_schemes = AuthenticationSchemes.Anonymous;
             auth_schemes = AuthenticationSchemes.Anonymous;
         }
         }
 
 
-        // TODO: @bond NullLogger
-        public HttpListener(X509Certificate certificate, ICryptoProvider cryptoProvider, ISocketFactory socketFactory, INetworkManager networkManager, ITextEncoding textEncoding, IStreamHelper streamHelper, IFileSystem fileSystem, IEnvironmentInfo environmentInfo)
-            :this(null, certificate, cryptoProvider, socketFactory, networkManager, textEncoding, streamHelper, fileSystem, environmentInfo)
-        {
-        }
-
         public HttpListener(ILogger logger, X509Certificate certificate, ICryptoProvider cryptoProvider, ISocketFactory socketFactory, INetworkManager networkManager, ITextEncoding textEncoding, IStreamHelper streamHelper, IFileSystem fileSystem, IEnvironmentInfo environmentInfo)
         public HttpListener(ILogger logger, X509Certificate certificate, ICryptoProvider cryptoProvider, ISocketFactory socketFactory, INetworkManager networkManager, ITextEncoding textEncoding, IStreamHelper streamHelper, IFileSystem fileSystem, IEnvironmentInfo environmentInfo)
             : this(logger, cryptoProvider, socketFactory, networkManager, textEncoding, streamHelper, fileSystem, environmentInfo)
             : this(logger, cryptoProvider, socketFactory, networkManager, textEncoding, streamHelper, fileSystem, environmentInfo)
         {
         {