/// <summary> /// Sets the item counts. /// </summary> /// <param name="artist">The artist.</param> /// <param name="userId">The user id.</param> /// <param name="allItems">All items.</param> private void SetItemCounts(Artist artist, Guid?userId, IEnumerable <IHasArtist> allItems) { var name = artist.Name; var items = allItems .Where(i => i.HasArtist(name)) .ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, SongCount = items.OfType <Audio>().Count(), AlbumCount = items.OfType <MusicAlbum>().Count(), MusicVideoCount = items.OfType <MusicVideo>().Count() }; if (userId.HasValue) { artist.UserItemCounts[userId.Value] = counts; } else { artist.ItemCounts = counts; } }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public object Get(GetPersonItemCounts request) { var name = DeSlugPersonName(request.Name, LibraryManager); var items = GetItems(request.UserId).Where(i => i.People != null && i.People.Any(p => string.Equals(p.Name, name, StringComparison.OrdinalIgnoreCase))).ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, TrailerCount = items.OfType <Trailer>().Count(), MovieCount = items.OfType <Movie>().Count(), SeriesCount = items.OfType <Series>().Count(), GameCount = items.OfType <Game>().Count(), SongCount = items.OfType <Audio>().Count(), AlbumCount = items.OfType <MusicAlbum>().Count(), EpisodeCount = items.OfType <Episode>().Count(), MusicVideoCount = items.OfType <MusicVideo>().Count() }; return(ToOptimizedResult(counts)); }
/// <summary> /// Attaches the item by name counts. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <param name="user">The user.</param> private void AttachItemByNameCounts(BaseItemDto dto, IItemByName item, User user) { ItemByNameCounts counts; if (user == null) { //counts = item.ItemCounts; return; } else { if (!item.UserItemCounts.TryGetValue(user.Id, out counts)) { counts = new ItemByNameCounts(); } } dto.ChildCount = counts.TotalCount; dto.AdultVideoCount = counts.AdultVideoCount; dto.AlbumCount = counts.AlbumCount; dto.EpisodeCount = counts.EpisodeCount; dto.GameCount = counts.GameCount; dto.MovieCount = counts.MovieCount; dto.MusicVideoCount = counts.MusicVideoCount; dto.SeriesCount = counts.SeriesCount; dto.SongCount = counts.SongCount; dto.TrailerCount = counts.TrailerCount; }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public object Get(GetStudioItemCounts request) { var name = DeSlugStudioName(request.Name, LibraryManager); var items = GetItems(request.UserId).Where(i => i.Studios != null && i.Studios.Contains(name, StringComparer.OrdinalIgnoreCase)).ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, TrailerCount = items.OfType <Trailer>().Count(), MovieCount = items.OfType <Movie>().Count(), SeriesCount = items.OfType <Series>().Count(), GameCount = items.OfType <Game>().Count(), SongCount = items.OfType <Audio>().Count(), AlbumCount = items.OfType <MusicAlbum>().Count(), MusicVideoCount = items.OfType <MusicVideo>().Count() }; return(ToOptimizedResult(counts)); }
public static void SetItemByNameCounts(this IItemByName item, Guid userId, ItemByNameCounts counts) { var current = item.UserItemCountList.FirstOrDefault(i => i.UserId == userId); if (current != null) { item.UserItemCountList.Remove(current); } counts.UserId = userId; item.UserItemCountList.Add(counts); }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public object Get(GetGameGenreItemCounts request) { var name = DeSlugGameGenreName(request.Name, LibraryManager); var items = GetItems(request.UserId).Where(i => i.Genres != null && i.Genres.Contains(name, StringComparer.OrdinalIgnoreCase)).ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, GameCount = items.OfType <Game>().Count() }; return(ToOptimizedResult(counts)); }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public object Get(GetArtistsItemCounts request) { var name = DeSlugArtistName(request.Name, LibraryManager); var items = GetItems(request.UserId).OfType <Audio>().Where(i => i.HasArtist(name)).ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, SongCount = items.Count(), AlbumCount = items.Select(i => i.Parent).OfType <MusicAlbum>().Distinct().Count() }; return(ToOptimizedResult(counts)); }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public object Get(GetArtistsItemCounts request) { var name = DeSlugArtistName(request.Name, LibraryManager); var items = GetItems(request.UserId).Where(i => { var song = i as Audio; if (song != null) { return(song.HasArtist(name)); } var musicVideo = i as MusicVideo; if (musicVideo != null) { return(musicVideo.HasArtist(name)); } return(false); }).ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, SongCount = items.OfType <Audio>().Count(), AlbumCount = items.Select(i => i.Parent).OfType <MusicAlbum>().Distinct().Count(), MusicVideoCount = items.OfType <MusicVideo>().Count(i => i.HasArtist(name)) }; return(ToOptimizedResult(counts)); }
public Genre() { ItemCounts = new ItemByNameCounts(); UserItemCounts = new Dictionary <Guid, ItemByNameCounts>(); }