aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-19 15:43:35 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-19 15:43:35 -0400
commit1ad990ad720931309afadd9f7912d66595dcc04e (patch)
tree7769cfe0e14092046bb772607f31c1fbc908be1d /MediaBrowser.Api/UserLibrary
parentbd31c0175d87ec00a675b92ae9a92af569228775 (diff)
update live tv data transfer
Diffstat (limited to 'MediaBrowser.Api/UserLibrary')
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs16
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs4
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs21
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs29
-rw-r--r--MediaBrowser.Api/UserLibrary/UserViewsService.cs21
5 files changed, 47 insertions, 44 deletions
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index 30e64d89d1..1d0065c7cf 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -88,7 +88,7 @@ namespace MediaBrowser.Api.UserLibrary
return null;
}
- protected ItemsResult GetResultSlim(GetItemsByName request)
+ protected QueryResult<BaseItemDto> GetResultSlim(GetItemsByName request)
{
var dtoOptions = GetDtoOptions(AuthorizationContext, request);
@@ -209,7 +209,7 @@ namespace MediaBrowser.Api.UserLibrary
return dto;
});
- return new ItemsResult
+ return new QueryResult<BaseItemDto>
{
Items = dtos.ToArray(result.Items.Length),
TotalRecordCount = result.TotalRecordCount
@@ -240,7 +240,7 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
/// <param name="request">The request.</param>
/// <returns>Task{ItemsResult}.</returns>
- protected ItemsResult GetResult(GetItemsByName request)
+ protected QueryResult<BaseItemDto> GetResult(GetItemsByName request)
{
var dtoOptions = GetDtoOptions(AuthorizationContext, request);
@@ -305,7 +305,7 @@ namespace MediaBrowser.Api.UserLibrary
IEnumerable<BaseItem> ibnItems = ibnItemsArray;
- var result = new ItemsResult
+ var result = new QueryResult<BaseItemDto>
{
TotalRecordCount = ibnItemsArray.Count
};
@@ -357,13 +357,13 @@ namespace MediaBrowser.Api.UserLibrary
items = items.Where(i => string.Compare(request.NameLessThan, i.SortName, StringComparison.CurrentCultureIgnoreCase) == 1);
}
- var imageTypes = request.GetImageTypes().ToList();
- if (imageTypes.Count > 0)
+ var imageTypes = request.GetImageTypes();
+ if (imageTypes.Length > 0)
{
items = items.Where(item => imageTypes.Any(item.HasImage));
}
- var filters = request.GetFilters().ToList();
+ var filters = request.GetFilters();
if (filters.Contains(ItemFilter.Dislikes))
{
@@ -506,7 +506,7 @@ namespace MediaBrowser.Api.UserLibrary
/// <summary>
/// Class GetItemsByName
/// </summary>
- public class GetItemsByName : BaseItemsRequest, IReturn<ItemsResult>
+ public class GetItemsByName : BaseItemsRequest, IReturn<QueryResult<BaseItemDto>>
{
public GetItemsByName()
{
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
index a9c5ae700d..66aa35de9c 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
@@ -435,7 +435,7 @@ namespace MediaBrowser.Api.UserLibrary
/// Gets the filters.
/// </summary>
/// <returns>IEnumerable{ItemFilter}.</returns>
- public IEnumerable<ItemFilter> GetFilters()
+ public ItemFilter[] GetFilters()
{
var val = Filters;
@@ -444,7 +444,7 @@ namespace MediaBrowser.Api.UserLibrary
return new ItemFilter[] { };
}
- return val.Split(',').Select(v => (ItemFilter)Enum.Parse(typeof(ItemFilter), v, true));
+ return val.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(v => (ItemFilter)Enum.Parse(typeof(ItemFilter), v, true)).ToArray();
}
/// <summary>
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index f3d7772fca..9dd5aa5651 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -10,6 +10,7 @@ using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Services;
using MediaBrowser.Model.Extensions;
@@ -21,7 +22,7 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
[Route("/Items", "GET", Summary = "Gets items based on a query.")]
[Route("/Users/{UserId}/Items", "GET", Summary = "Gets items based on a query.")]
- public class GetItems : BaseItemsRequest, IReturn<ItemsResult>
+ public class GetItems : BaseItemsRequest, IReturn<QueryResult<BaseItemDto>>
{
}
@@ -100,7 +101,7 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
/// <param name="request">The request.</param>
/// <returns>Task{ItemsResult}.</returns>
- private async Task<ItemsResult> GetItems(GetItems request)
+ private async Task<QueryResult<BaseItemDto>> GetItems(GetItems request)
{
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
@@ -125,10 +126,10 @@ namespace MediaBrowser.Api.UserLibrary
throw new InvalidOperationException("GetBaseItemDtos returned null");
}
- return new ItemsResult
+ return new QueryResult<BaseItemDto>
{
TotalRecordCount = result.TotalRecordCount,
- Items = dtoList.ToArray(dtoList.Count)
+ Items = dtoList
};
}
@@ -180,9 +181,7 @@ namespace MediaBrowser.Api.UserLibrary
return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
}
- IEnumerable<BaseItem> items = folder.GetChildren(user, true);
-
- var itemsArray = items.ToArray();
+ var itemsArray = folder.GetChildren(user, true).ToArray();
return new QueryResult<BaseItem>
{
@@ -332,13 +331,11 @@ namespace MediaBrowser.Api.UserLibrary
if (!string.IsNullOrEmpty(request.LocationTypes))
{
var requestedLocationTypes =
- request.LocationTypes.Split(',')
- .Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true))
- .ToList();
+ request.LocationTypes.Split(',');
- if (requestedLocationTypes.Count > 0 && requestedLocationTypes.Count < 4)
+ if (requestedLocationTypes.Length > 0 && requestedLocationTypes.Length < 4)
{
- query.IsVirtualItem = requestedLocationTypes.Contains(LocationType.Virtual);
+ query.IsVirtualItem = requestedLocationTypes.Contains(LocationType.Virtual.ToString());
}
}
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index ee11626870..87a06e4d59 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -59,7 +59,7 @@ namespace MediaBrowser.Api.UserLibrary
/// Class GetIntros
/// </summary>
[Route("/Users/{UserId}/Items/{Id}/Intros", "GET", Summary = "Gets intros to play before the main media item plays")]
- public class GetIntros : IReturn<ItemsResult>
+ public class GetIntros : IReturn<QueryResult<BaseItemDto>>
{
/// <summary>
/// Gets or sets the user id.
@@ -171,7 +171,7 @@ namespace MediaBrowser.Api.UserLibrary
/// Class GetLocalTrailers
/// </summary>
[Route("/Users/{UserId}/Items/{Id}/LocalTrailers", "GET", Summary = "Gets local trailers for an item")]
- public class GetLocalTrailers : IReturn<List<BaseItemDto>>
+ public class GetLocalTrailers : IReturn<BaseItemDto[]>
{
/// <summary>
/// Gets or sets the user id.
@@ -192,7 +192,7 @@ namespace MediaBrowser.Api.UserLibrary
/// Class GetSpecialFeatures
/// </summary>
[Route("/Users/{UserId}/Items/{Id}/SpecialFeatures", "GET", Summary = "Gets special features for an item")]
- public class GetSpecialFeatures : IReturn<List<BaseItemDto>>
+ public class GetSpecialFeatures : IReturn<BaseItemDto[]>
{
/// <summary>
/// Gets or sets the user id.
@@ -210,7 +210,7 @@ namespace MediaBrowser.Api.UserLibrary
}
[Route("/Users/{UserId}/Items/Latest", "GET", Summary = "Gets latest media")]
- public class GetLatestMedia : IReturn<List<BaseItemDto>>, IHasDtoOptions
+ public class GetLatestMedia : IReturn<BaseItemDto[]>, IHasDtoOptions
{
/// <summary>
/// Gets or sets the user id.
@@ -338,10 +338,10 @@ namespace MediaBrowser.Api.UserLibrary
return dto;
});
- return ToOptimizedResult(dtos.ToList());
+ return ToOptimizedResult(dtos.ToArray());
}
- private List<BaseItemDto> GetAsync(GetSpecialFeatures request)
+ private BaseItemDto[] GetAsync(GetSpecialFeatures request)
{
var user = _userManager.GetUserById(request.UserId);
@@ -364,7 +364,7 @@ namespace MediaBrowser.Api.UserLibrary
.Where(i => i.ParentIndexNumber.HasValue && i.ParentIndexNumber.Value == 0)
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, currentUser));
- return dtos.ToList();
+ return dtos.ToArray();
}
var movie = item as IHasSpecialFeatures;
@@ -379,10 +379,10 @@ namespace MediaBrowser.Api.UserLibrary
.OrderBy(i => i.SortName)
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item));
- return dtos.ToList();
+ return dtos.ToArray();
}
- return new List<BaseItemDto>();
+ return new BaseItemDto[] { };
}
/// <summary>
@@ -396,19 +396,24 @@ namespace MediaBrowser.Api.UserLibrary
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : _libraryManager.GetItemById(request.Id);
- var trailerIds = new List<Guid>();
+ List<Guid> trailerIds = null;
var hasTrailers = item as IHasTrailers;
if (hasTrailers != null)
{
trailerIds = hasTrailers.GetTrailerIds();
}
+ else
+ {
+ trailerIds = new List<Guid>();
+ }
var dtoOptions = GetDtoOptions(_authContext, request);
var dtos = trailerIds
.Select(_libraryManager.GetItemById)
- .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item));
+ .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item))
+ .ToArray();
return ToOptimizedSerializedResultUsingCache(dtos);
}
@@ -489,7 +494,7 @@ namespace MediaBrowser.Api.UserLibrary
var dtos = items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)).ToArray();
- var result = new ItemsResult
+ var result = new QueryResult<BaseItemDto>
{
Items = dtos,
TotalRecordCount = dtos.Length
diff --git a/MediaBrowser.Api/UserLibrary/UserViewsService.cs b/MediaBrowser.Api/UserLibrary/UserViewsService.cs
index 3ed5166a4b..096157e47f 100644
--- a/MediaBrowser.Api/UserLibrary/UserViewsService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserViewsService.cs
@@ -12,6 +12,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Services;
+using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Api.UserLibrary
{
@@ -32,7 +33,7 @@ namespace MediaBrowser.Api.UserLibrary
}
[Route("/Users/{UserId}/GroupingOptions", "GET")]
- public class GetGroupingOptions : IReturn<List<SpecialViewOption>>
+ public class GetGroupingOptions : IReturn<SpecialViewOption[]>
{
/// <summary>
/// Gets or sets the user id.
@@ -84,10 +85,13 @@ namespace MediaBrowser.Api.UserLibrary
var folders = await _userViewManager.GetUserViews(query, CancellationToken.None).ConfigureAwait(false);
var dtoOptions = GetDtoOptions(_authContext, request);
- dtoOptions.Fields.Add(ItemFields.PrimaryImageAspectRatio);
- dtoOptions.Fields.Add(ItemFields.DisplayPreferencesId);
- dtoOptions.Fields.Remove(ItemFields.SyncInfo);
- dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
+ var fields = dtoOptions.Fields.ToList();
+
+ fields.Add(ItemFields.PrimaryImageAspectRatio);
+ fields.Add(ItemFields.DisplayPreferencesId);
+ fields.Remove(ItemFields.SyncInfo);
+ fields.Remove(ItemFields.BasicSyncInfo);
+ dtoOptions.Fields = fields.ToArray(fields.Count);
var user = _userManager.GetUserById(request.UserId);
@@ -107,13 +111,10 @@ namespace MediaBrowser.Api.UserLibrary
{
var user = _userManager.GetUserById(request.UserId);
- var views = user.RootFolder
+ var list = user.RootFolder
.GetChildren(user, true)
.OfType<Folder>()
.Where(UserView.IsEligibleForGrouping)
- .ToList();
-
- var list = views
.Select(i => new SpecialViewOption
{
Name = i.Name,
@@ -121,7 +122,7 @@ namespace MediaBrowser.Api.UserLibrary
})
.OrderBy(i => i.Name)
- .ToList();
+ .ToArray();
return ToOptimizedResult(list);
}