aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs')
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs73
1 files changed, 73 insertions, 0 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index c0992a749..bb23f7f7e 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -471,6 +471,76 @@ namespace MediaBrowser.Api.DefaultTheme
}).Where(i => i != null).ToList();
}
+ private void SetFavoriteGenres(MoviesView view, IEnumerable<BaseItem> inputItems, User user)
+ {
+ var all = inputItems.SelectMany(i => i.Genres)
+ .Distinct(StringComparer.OrdinalIgnoreCase);
+
+ view.FavoriteGenres = all.Select(i =>
+ {
+ try
+ {
+ var itemByName = _libraryManager.GetGenre(i);
+
+ var counts = itemByName.GetItemByNameCounts(user);
+
+ var count = counts == null ? 0 : counts.MovieCount;
+
+ if (count > 0 && _userDataManager.GetUserData(user.Id, itemByName.GetUserDataKey()).IsFavorite)
+ {
+ return new ItemByNameInfo
+ {
+ Name = itemByName.Name,
+ ItemCount = count
+ };
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error getting genre {0}", ex, i);
+
+ }
+
+ return null;
+
+ }).Where(i => i != null).ToList();
+ }
+
+ private void SetFavoriteStudios(MoviesView view, IEnumerable<BaseItem> inputItems, User user)
+ {
+ var all = inputItems.SelectMany(i => i.Studios)
+ .Distinct(StringComparer.OrdinalIgnoreCase);
+
+ view.FavoriteStudios = all.Select(i =>
+ {
+ try
+ {
+ var itemByName = _libraryManager.GetStudio(i);
+
+ var counts = itemByName.GetItemByNameCounts(user);
+
+ var count = counts == null ? 0 : counts.MovieCount;
+
+ if (count > 0 && _userDataManager.GetUserData(user.Id, itemByName.GetUserDataKey()).IsFavorite)
+ {
+ return new ItemByNameInfo
+ {
+ Name = itemByName.Name,
+ ItemCount = count
+ };
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error getting studio {0}", ex, i);
+
+ }
+
+ return null;
+
+ }).Where(i => i != null).ToList();
+ }
+
public object Get(GetMovieView request)
{
var user = _userManager.GetUserById(request.UserId);
@@ -487,6 +557,9 @@ namespace MediaBrowser.Api.DefaultTheme
var movies = items.OfType<Movie>()
.ToList();
+ SetFavoriteGenres(view, movies, user);
+ SetFavoriteStudios(view, movies, user);
+
var trailers = items.OfType<Trailer>()
.ToList();