aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs38
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs10
2 files changed, 46 insertions, 2 deletions
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
/// <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,27 @@ 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");
+ }
+
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()
};
}
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index f21dd27ff..8805d567a 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/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);