Exemple #1
0
        /// <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;
            }
        }
Exemple #2
0
        /// <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));
        }
Exemple #3
0
        /// <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));
        }
Exemple #7
0
        /// <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));
        }
Exemple #8
0
        /// <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));
        }
Exemple #9
0
 public Genre()
 {
     ItemCounts     = new ItemByNameCounts();
     UserItemCounts = new Dictionary <Guid, ItemByNameCounts>();
 }