aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs34
-rw-r--r--MediaBrowser.Api/DefaultTheme/Models.cs35
-rw-r--r--MediaBrowser.Api/Images/ImageRequest.cs3
-rw-r--r--MediaBrowser.Api/InstantMixService.cs6
-rw-r--r--MediaBrowser.Api/LibraryService.cs16
-rw-r--r--MediaBrowser.Api/SearchService.cs4
-rw-r--r--MediaBrowser.Api/SimilarItemsHelper.cs13
-rw-r--r--MediaBrowser.Api/TvShowsService.cs18
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs8
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs12
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs10
11 files changed, 82 insertions, 77 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index 736710c54..eb4ddc9cd 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -107,7 +107,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Take(50)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
- view.SpotlightItems = dtos.ToArray();
+ view.SpotlightItems = dtos.ToList();
return view;
}
@@ -139,7 +139,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Take(50)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
- view.SpotlightItems = dtos.ToArray();
+ view.SpotlightItems = dtos.ToList();
return view;
}
@@ -178,7 +178,7 @@ namespace MediaBrowser.Api.DefaultTheme
.AsParallel()
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
- view.SpotlightItems = dtos.ToArray();
+ view.SpotlightItems = dtos.ToList();
view.ShowsItems = series
.Where(i => i.BackdropImagePaths.Count > 0)
@@ -186,7 +186,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
var romanceGenres = request.RomanceGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
var comedyGenres = request.ComedyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
@@ -197,7 +197,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.ComedyItems = seriesWithBackdrops
.Where(i => i.Genres.Any(comedyGenres.ContainsKey))
@@ -205,7 +205,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.ActorItems = GetActors(series);
@@ -252,14 +252,14 @@ namespace MediaBrowser.Api.DefaultTheme
.Take(50)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
- view.SpotlightItems = dtos.ToArray();
+ view.SpotlightItems = dtos.ToList();
view.MovieItems = moviesWithBackdrops
.OrderBy(i => Guid.NewGuid())
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.TrailerItems = items
.OfType<Trailer>()
@@ -268,7 +268,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Primary))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.BoxSetItems = items
.OfType<BoxSet>()
@@ -277,7 +277,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.ThreeDItems = moviesWithBackdrops
.Where(i => i.Is3D)
@@ -285,7 +285,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
var romanceGenres = request.RomanceGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
var comedyGenres = request.ComedyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
@@ -296,7 +296,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.ComedyItems = moviesWithBackdrops
.Where(i => i.Genres.Any(comedyGenres.ContainsKey))
@@ -304,7 +304,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.HDItems = hdMovies
.Where(i => i.BackdropImagePaths.Count > 0)
@@ -312,7 +312,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.FamilyMovies = familyMovies
.Where(i => i.BackdropImagePaths.Count > 0)
@@ -320,7 +320,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
view.PeopleItems = GetActors(items);
@@ -362,7 +362,7 @@ namespace MediaBrowser.Api.DefaultTheme
}
}
- private ItemStub[] GetActors(IEnumerable<BaseItem> mediaItems)
+ private List<ItemStub> GetActors(IEnumerable<BaseItem> mediaItems)
{
var actors = mediaItems.SelectMany(i => i.People)
.Select(i => i.Name)
@@ -390,7 +390,7 @@ namespace MediaBrowser.Api.DefaultTheme
})
.Where(i => i != null)
.Take(3)
- .ToArray();
+ .ToList();
}
private ItemStub GetItemStub(BaseItem item, ImageType imageType)
diff --git a/MediaBrowser.Api/DefaultTheme/Models.cs b/MediaBrowser.Api/DefaultTheme/Models.cs
index a25bb4bb1..12fde353b 100644
--- a/MediaBrowser.Api/DefaultTheme/Models.cs
+++ b/MediaBrowser.Api/DefaultTheme/Models.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using System;
+using System.Collections.Generic;
namespace MediaBrowser.Api.DefaultTheme
{
@@ -14,19 +15,19 @@ namespace MediaBrowser.Api.DefaultTheme
public class MoviesView
{
- public BaseItemDto[] SpotlightItems { get; set; }
- public ItemStub[] MovieItems { get; set; }
- public ItemStub[] PeopleItems { get; set; }
+ public List<BaseItemDto> SpotlightItems { get; set; }
+ public List<ItemStub> MovieItems { get; set; }
+ public List<ItemStub> PeopleItems { get; set; }
- public ItemStub[] BoxSetItems { get; set; }
- public ItemStub[] TrailerItems { get; set; }
- public ItemStub[] HDItems { get; set; }
- public ItemStub[] ThreeDItems { get; set; }
+ public List<ItemStub> BoxSetItems { get; set; }
+ public List<ItemStub> TrailerItems { get; set; }
+ public List<ItemStub> HDItems { get; set; }
+ public List<ItemStub> ThreeDItems { get; set; }
- public ItemStub[] FamilyMovies { get; set; }
+ public List<ItemStub> FamilyMovies { get; set; }
- public ItemStub[] RomanceItems { get; set; }
- public ItemStub[] ComedyItems { get; set; }
+ public List<ItemStub> RomanceItems { get; set; }
+ public List<ItemStub> ComedyItems { get; set; }
public double FamilyMoviePercentage { get; set; }
@@ -35,21 +36,21 @@ namespace MediaBrowser.Api.DefaultTheme
public class TvView
{
- public BaseItemDto[] SpotlightItems { get; set; }
- public ItemStub[] ShowsItems { get; set; }
- public ItemStub[] ActorItems { get; set; }
+ public List<BaseItemDto> SpotlightItems { get; set; }
+ public List<ItemStub> ShowsItems { get; set; }
+ public List<ItemStub> ActorItems { get; set; }
- public ItemStub[] RomanceItems { get; set; }
- public ItemStub[] ComedyItems { get; set; }
+ public List<ItemStub> RomanceItems { get; set; }
+ public List<ItemStub> ComedyItems { get; set; }
}
public class GamesView
{
- public BaseItemDto[] SpotlightItems { get; set; }
+ public List<BaseItemDto> SpotlightItems { get; set; }
}
public class HomeView
{
- public BaseItemDto[] SpotlightItems { get; set; }
+ public List<BaseItemDto> SpotlightItems { get; set; }
}
}
diff --git a/MediaBrowser.Api/Images/ImageRequest.cs b/MediaBrowser.Api/Images/ImageRequest.cs
index fcb731f59..294b7ae96 100644
--- a/MediaBrowser.Api/Images/ImageRequest.cs
+++ b/MediaBrowser.Api/Images/ImageRequest.cs
@@ -57,14 +57,13 @@ namespace MediaBrowser.Api.Images
public ImageOutputFormat Format { get; set; }
[ApiMember(Name = "Indicator", Description = "Determines what overlay to render, if any. none, watched.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
- public ImageOverlay Indicator { get; set; }
+ public ImageOverlay? Indicator { get; set; }
public ImageRequest()
{
EnableImageEnhancers = true;
Format = ImageOutputFormat.Original;
- Indicator = ImageOverlay.None;
}
}
diff --git a/MediaBrowser.Api/InstantMixService.cs b/MediaBrowser.Api/InstantMixService.cs
index baea2bc78..5a8c5a985 100644
--- a/MediaBrowser.Api/InstantMixService.cs
+++ b/MediaBrowser.Api/InstantMixService.cs
@@ -124,14 +124,14 @@ namespace MediaBrowser.Api
.Select(i => i.Item1)
.Take(limit)
.OrderBy(i => Guid.NewGuid())
- .ToArray();
+ .ToList();
var result = new ItemsResult
{
- TotalRecordCount = items.Length
+ TotalRecordCount = items.Count
};
- var dtos = items.Take(request.Limit ?? items.Length)
+ var dtos = items.Take(request.Limit ?? items.Count)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
result.Items = dtos.ToArray();
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs
index 68a2258b8..83e35cd41 100644
--- a/MediaBrowser.Api/LibraryService.cs
+++ b/MediaBrowser.Api/LibraryService.cs
@@ -235,7 +235,7 @@ namespace MediaBrowser.Api
/// </summary>
/// <param name="request">The request.</param>
/// <returns>Task{BaseItemDto[]}.</returns>
- public BaseItemDto[] GetAncestors(GetAncestors request)
+ public List<BaseItemDto> GetAncestors(GetAncestors request)
{
var item = _dtoService.GetItemByDtoId(request.Id);
@@ -267,7 +267,7 @@ namespace MediaBrowser.Api
parent = parent.Parent;
}
- return baseItemDtos.ToArray();
+ return baseItemDtos.ToList();
}
private BaseItem TranslateParentItem(BaseItem item, User user)
@@ -463,7 +463,7 @@ namespace MediaBrowser.Api
Id = request.Id,
UserId = request.UserId
- }).Result;
+ });
var themeVideos = GetThemeVideos(new GetThemeVideos
{
@@ -471,7 +471,7 @@ namespace MediaBrowser.Api
Id = request.Id,
UserId = request.UserId
- }).Result;
+ });
return ToOptimizedResult(new AllThemeMediaResult
{
@@ -487,12 +487,12 @@ namespace MediaBrowser.Api
/// <returns>System.Object.</returns>
public object Get(GetThemeSongs request)
{
- var result = GetThemeSongs(request).Result;
+ var result = GetThemeSongs(request);
return ToOptimizedResult(result);
}
- private async Task<ThemeMediaResult> GetThemeSongs(GetThemeSongs request)
+ private ThemeMediaResult GetThemeSongs(GetThemeSongs request)
{
var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null;
@@ -533,12 +533,12 @@ namespace MediaBrowser.Api
/// <returns>System.Object.</returns>
public object Get(GetThemeVideos request)
{
- var result = GetThemeVideos(request).Result;
+ var result = GetThemeVideos(request);
return ToOptimizedResult(result);
}
- public async Task<ThemeMediaResult> GetThemeVideos(GetThemeVideos request)
+ public ThemeMediaResult GetThemeVideos(GetThemeVideos request)
{
var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null;
diff --git a/MediaBrowser.Api/SearchService.cs b/MediaBrowser.Api/SearchService.cs
index 78c299fbb..ba669002e 100644
--- a/MediaBrowser.Api/SearchService.cs
+++ b/MediaBrowser.Api/SearchService.cs
@@ -118,7 +118,7 @@ namespace MediaBrowser.Api
var results = await _searchEngine.GetSearchHints(inputItems, request.SearchTerm).ConfigureAwait(false);
- var searchResultArray = results.ToArray();
+ var searchResultArray = results.ToList();
IEnumerable<SearchHintInfo> returnResults = searchResultArray;
@@ -134,7 +134,7 @@ namespace MediaBrowser.Api
return new SearchHintResult
{
- TotalRecordCount = searchResultArray.Length,
+ TotalRecordCount = searchResultArray.Count,
SearchHints = returnResults.Select(GetSearchHintResult).ToArray()
};
diff --git a/MediaBrowser.Api/SimilarItemsHelper.cs b/MediaBrowser.Api/SimilarItemsHelper.cs
index f884a5f1d..4103eff35 100644
--- a/MediaBrowser.Api/SimilarItemsHelper.cs
+++ b/MediaBrowser.Api/SimilarItemsHelper.cs
@@ -108,13 +108,20 @@ namespace MediaBrowser.Api
: user.RootFolder.GetRecursiveChildren(user);
var items = GetSimilaritems(item, inputItems, includeInSearch, getSimilarityScore)
- .ToArray();
+ .ToList();
+
+ IEnumerable<BaseItem> returnItems = items;
+
+ if (request.Limit.HasValue)
+ {
+ returnItems = returnItems.Take(request.Limit.Value);
+ }
var result = new ItemsResult
{
- Items = items.Take(request.Limit ?? items.Length).Select(i => dtoService.GetBaseItemDto(i, fields, user)).ToArray(),
+ Items = returnItems.Select(i => dtoService.GetBaseItemDto(i, fields, user)).ToArray(),
- TotalRecordCount = items.Length
+ TotalRecordCount = items.Count
};
return result;
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs
index e7e8e71c3..e62959bee 100644
--- a/MediaBrowser.Api/TvShowsService.cs
+++ b/MediaBrowser.Api/TvShowsService.cs
@@ -3,13 +3,11 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
-using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Querying;
using ServiceStack.ServiceHost;
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Threading.Tasks;
namespace MediaBrowser.Api
{
@@ -144,7 +142,7 @@ namespace MediaBrowser.Api
/// <returns>System.Object.</returns>
public object Get(GetNextUpEpisodes request)
{
- var result = GetNextUpEpisodes(request).Result;
+ var result = GetNextUpEpisodes(request);
return ToOptimizedResult(result);
}
@@ -154,18 +152,18 @@ namespace MediaBrowser.Api
/// </summary>
/// <param name="request">The request.</param>
/// <returns>Task{ItemsResult}.</returns>
- private async Task<ItemsResult> GetNextUpEpisodes(GetNextUpEpisodes request)
+ private ItemsResult GetNextUpEpisodes(GetNextUpEpisodes request)
{
var user = _userManager.GetUserById(request.UserId);
- var itemsArray = user.RootFolder
+ var itemsList = user.RootFolder
.GetRecursiveChildren(user)
.OfType<Series>()
.AsParallel()
.Select(i => GetNextUp(i, user))
- .ToArray();
+ .ToList();
- itemsArray = itemsArray
+ itemsList = itemsList
.Where(i => i.Item1 != null)
.OrderByDescending(i =>
{
@@ -185,9 +183,9 @@ namespace MediaBrowser.Api
return 0;
})
.ThenByDescending(i => i.Item1.PremiereDate ?? DateTime.MinValue)
- .ToArray();
+ .ToList();
- var pagedItems = ApplyPaging(request, itemsArray.Select(i => i.Item1));
+ var pagedItems = ApplyPaging(request, itemsList.Select(i => i.Item1));
var fields = request.GetItemFields().ToList();
@@ -195,7 +193,7 @@ namespace MediaBrowser.Api
return new ItemsResult
{
- TotalRecordCount = itemsArray.Length,
+ TotalRecordCount = itemsList.Count,
Items = returnItems
};
}
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index 734278924..4b4d08b09 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -96,13 +96,13 @@ namespace MediaBrowser.Api.UserLibrary
filteredItems = ItemsService.ApplySortOrder(request, filteredItems, user, LibraryManager).Cast<TItemType>();
- var ibnItemsArray = filteredItems.ToArray();
+ var ibnItemsArray = filteredItems.ToList();
IEnumerable<TItemType> ibnItems = ibnItemsArray;
var result = new ItemsResult
{
- TotalRecordCount = ibnItemsArray.Length
+ TotalRecordCount = ibnItemsArray.Count
};
if (request.StartIndex.HasValue || request.Limit.HasValue)
@@ -142,8 +142,8 @@ namespace MediaBrowser.Api.UserLibrary
items = items.Where(i => string.Compare(request.NameStartsWithOrGreater, i.Name, StringComparison.CurrentCultureIgnoreCase) < 1);
}
- var imageTypes = request.GetImageTypes().ToArray();
- if (imageTypes.Length > 0)
+ var imageTypes = request.GetImageTypes().ToList();
+ if (imageTypes.Count > 0)
{
items = items.Where(item => imageTypes.Any(imageType => ItemsService.HasImage(item, imageType)));
}
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 5b07a7bd7..65ece13ac 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -254,7 +254,7 @@ namespace MediaBrowser.Api.UserLibrary
items = ApplySortOrder(request, items, user, _libraryManager);
- var itemsArray = items.ToArray();
+ var itemsArray = items.ToList();
var pagedItems = ApplyPaging(request, itemsArray);
@@ -264,7 +264,7 @@ namespace MediaBrowser.Api.UserLibrary
return new ItemsResult
{
- TotalRecordCount = itemsArray.Length,
+ TotalRecordCount = itemsArray.Count,
Items = returnItems
};
}
@@ -307,9 +307,9 @@ namespace MediaBrowser.Api.UserLibrary
/// <returns>IEnumerable{BaseItem}.</returns>
internal static IEnumerable<BaseItem> ApplySortOrder(BaseItemsRequest request, IEnumerable<BaseItem> items, User user, ILibraryManager libraryManager)
{
- var orderBy = request.GetOrderBy().ToArray();
+ var orderBy = request.GetOrderBy().ToList();
- return orderBy.Length == 0 ? items : libraryManager.Sort(items, user, orderBy, request.SortOrder ?? SortOrder.Ascending);
+ return orderBy.Count == 0 ? items : libraryManager.Sort(items, user, orderBy, request.SortOrder ?? SortOrder.Ascending);
}
/// <summary>
@@ -603,8 +603,8 @@ namespace MediaBrowser.Api.UserLibrary
items = items.Where(i => !string.IsNullOrEmpty(i.MediaType) && types.Contains(i.MediaType, StringComparer.OrdinalIgnoreCase));
}
- var imageTypes = request.GetImageTypes().ToArray();
- if (imageTypes.Length > 0)
+ var imageTypes = request.GetImageTypes().ToList();
+ if (imageTypes.Count > 0)
{
items = items.Where(item => imageTypes.Any(imageType => HasImage(item, imageType)));
}
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index 392fffc79..f4e9739a1 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -398,7 +398,7 @@ namespace MediaBrowser.Api.UserLibrary
return ToOptimizedResult(result);
}
- private BaseItemDto[] GetAsync(GetSpecialFeatures request)
+ private List<BaseItemDto> GetAsync(GetSpecialFeatures request)
{
var user = _userManager.GetUserById(request.UserId);
@@ -420,7 +420,7 @@ namespace MediaBrowser.Api.UserLibrary
.OrderBy(i => i.SortName)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user, movie1));
- return dtos.ToArray();
+ return dtos.ToList();
}
var series = item as Series;
@@ -448,7 +448,7 @@ namespace MediaBrowser.Api.UserLibrary
.ThenBy(i => i.SortName)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
- return dtos.ToArray();
+ return dtos.ToList();
}
throw new ArgumentException("The item does not support special features");
@@ -466,7 +466,7 @@ namespace MediaBrowser.Api.UserLibrary
return ToOptimizedResult(result);
}
- private BaseItemDto[] GetAsync(GetLocalTrailers request)
+ private List<BaseItemDto> GetAsync(GetLocalTrailers request)
{
var user = _userManager.GetUserById(request.UserId);
@@ -480,7 +480,7 @@ namespace MediaBrowser.Api.UserLibrary
.OrderBy(i => i.SortName)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user, item));
- return dtos.ToArray();
+ return dtos.ToList();
}
/// <summary>