From dc15f930051d209e7bccbd352139a843982a9c62 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 26 Jun 2016 16:35:03 -0400 Subject: fixes #1787 --- MediaBrowser.Api/UserLibrary/ItemsService.cs | 38 ++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Api/UserLibrary') diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 7dd5920b7..19cadbec7 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -52,6 +52,23 @@ namespace MediaBrowser.Api.UserLibrary /// The dto service. 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 /// System.Object. public async Task Get(GetItems request) { + if (request == null) + { + throw new ArgumentNullException("request"); + } + var result = await GetItems(request).ConfigureAwait(false); return ToOptimizedSerializedResultUsingCache(result); @@ -78,15 +100,27 @@ namespace MediaBrowser.Api.UserLibrary private async Task 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"); + } + 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() }; } -- cgit v1.2.3 From 17e416a0fd681a3ef71e09c58e2af49177afe56e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 26 Jun 2016 16:38:50 -0400 Subject: add logging --- MediaBrowser.Api/UserLibrary/ItemsService.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'MediaBrowser.Api/UserLibrary') diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 19cadbec7..a6f1d8b98 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -108,6 +108,11 @@ namespace MediaBrowser.Api.UserLibrary 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); -- cgit v1.2.3