浏览代码

Merge pull request #1883 from MediaBrowser/dev

Dev
Luke 9 年之前
父节点
当前提交
e49112c3db

+ 41 - 2
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -52,6 +52,23 @@ namespace MediaBrowser.Api.UserLibrary
         /// <param name="dtoService">The dto service.</param>
         public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ILocalizationManager localization, IDtoService dtoService)
         {
+            if (userManager == null)
+            {
+                throw new ArgumentNullException("userManager");
+            }
+            if (libraryManager == null)
+            {
+                throw new ArgumentNullException("libraryManager");
+            }
+            if (localization == null)
+            {
+                throw new ArgumentNullException("localization");
+            }
+            if (dtoService == null)
+            {
+                throw new ArgumentNullException("dtoService");
+            }
+
             _userManager = userManager;
             _libraryManager = libraryManager;
             _localization = localization;
@@ -65,6 +82,11 @@ namespace MediaBrowser.Api.UserLibrary
         /// <returns>System.Object.</returns>
         public async Task<object> Get(GetItems request)
         {
+            if (request == null)
+            {
+                throw new ArgumentNullException("request");
+            }
+
             var result = await GetItems(request).ConfigureAwait(false);
 
             return ToOptimizedSerializedResultUsingCache(result);
@@ -78,15 +100,32 @@ namespace MediaBrowser.Api.UserLibrary
         private async Task<ItemsResult> GetItems(GetItems request)
         {
             var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
-
+        
             var result = await GetItemsToSerialize(request, user).ConfigureAwait(false);
 
+            if (result == null)
+            {
+                throw new InvalidOperationException("GetItemsToSerialize returned null");
+            }
+
+            if (result.Items == null)
+            {
+                throw new InvalidOperationException("GetItemsToSerialize result.Items returned null");
+            }
+
             var dtoOptions = GetDtoOptions(request);
 
+            var dtoList = await _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user).ConfigureAwait(false);
+
+            if (dtoList == null)
+            {
+                throw new InvalidOperationException("GetBaseItemDtos returned null");
+            }
+
             return new ItemsResult
             {
                 TotalRecordCount = result.TotalRecordCount,
-                Items = (await _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user).ConfigureAwait(false)).ToArray()
+                Items = dtoList.ToArray()
             };
         }
 

+ 8 - 6
MediaBrowser.Providers/Manager/ImageSaver.cs

@@ -161,6 +161,8 @@ namespace MediaBrowser.Providers.Manager
             {
                 var currentPath = currentImage.Path;
 
+                _logger.Debug("Deleting previous image {0}", currentPath);
+
                 _libraryMonitor.ReportFileSystemChangeBeginning(currentPath);
 
                 try
@@ -276,7 +278,7 @@ namespace MediaBrowser.Providers.Manager
         /// <returns>IEnumerable{System.String}.</returns>
         private string[] GetSavePaths(IHasImages item, ImageType type, int? imageIndex, string mimeType, bool saveLocally)
         {
-            if (_config.Configuration.ImageSavingConvention == ImageSavingConvention.Legacy || !saveLocally)
+            if (!saveLocally)
             {
                 return new[] { GetStandardSavePath(item, type, imageIndex, mimeType, saveLocally) };
             }
@@ -375,11 +377,11 @@ namespace MediaBrowser.Providers.Manager
             }
 
             string filename;
-            var folderName = item is MusicAlbum || 
-                item is MusicArtist || 
-                item is PhotoAlbum || 
-                (saveLocally && _config.Configuration.ImageSavingConvention == ImageSavingConvention.Legacy) ? 
-                "folder" : 
+            var folderName = item is MusicAlbum ||
+                item is MusicArtist ||
+                item is PhotoAlbum ||
+                (saveLocally && _config.Configuration.ImageSavingConvention == ImageSavingConvention.Legacy) ?
+                "folder" :
                 "poster";
 
             switch (type)

+ 10 - 0
MediaBrowser.Server.Implementations/Dto/DtoService.cs

@@ -88,6 +88,16 @@ namespace MediaBrowser.Server.Implementations.Dto
 
         public async Task<List<BaseItemDto>> GetBaseItemDtos(IEnumerable<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null)
         {
+            if (items == null)
+            {
+                throw new ArgumentNullException("items");
+            }
+
+            if (options == null)
+            {
+                throw new ArgumentNullException("options");
+            }
+
             var syncJobItems = GetSyncedItemProgress(options);
             var syncDictionary = GetSyncedItemProgressDictionary(syncJobItems);