예제 #1
0
        /// <summary>
        /// Gets the critic reviews async.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Task{ItemReviewsResult}.</returns>
        private async Task <ItemReviewsResult> GetCriticReviewsAsync(GetCriticReviews request)
        {
            var reviews = await _itemRepo.GetCriticReviews(new Guid(request.Id)).ConfigureAwait(false);

            var reviewsArray = reviews.ToArray();

            var result = new ItemReviewsResult
            {
                TotalRecordCount = reviewsArray.Length
            };

            if (request.StartIndex.HasValue)
            {
                reviewsArray = reviewsArray.Skip(request.StartIndex.Value).ToArray();
            }
            if (request.Limit.HasValue)
            {
                reviewsArray = reviewsArray.Take(request.Limit.Value).ToArray();
            }

            result.ItemReviews = reviewsArray;

            return(result);
        }
예제 #2
0
        /// <summary>
        /// Gets the critic reviews async.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Task{ItemReviewsResult}.</returns>
        private ItemReviewsResult GetCriticReviews(GetCriticReviews request)
        {
            var reviews = _itemRepo.GetCriticReviews(new Guid(request.Id));

            var reviewsArray = reviews.ToArray();

            var result = new ItemReviewsResult
            {
                TotalRecordCount = reviewsArray.Length
            };

            if (request.StartIndex.HasValue)
            {
                reviewsArray = reviewsArray.Skip(request.StartIndex.Value).ToArray();
            }
            if (request.Limit.HasValue)
            {
                reviewsArray = reviewsArray.Take(request.Limit.Value).ToArray();
            }

            result.ItemReviews = reviewsArray;

            return(result);
        }
예제 #3
0
        private IEnumerable <TabItem> GetMenuList(BaseItemDto item, AllThemeMediaResult themeMediaResult, ItemReviewsResult reviewsResult)
        {
            var views = new List <TabItem>
            {
                new TabItem
                {
                    Name        = "overview",
                    DisplayName = "Overview"
                }
            };

            if (item.ChildCount > 0)
            {
                if (item.IsType("series") && item.SeasonCount > 1)
                {
                    views.Add(new TabItem
                    {
                        Name        = "seasons",
                        DisplayName = "Seasons"
                    });
                }
                else if (item.IsType("series") && item.SeasonCount == 1)
                {
                    views.Add(new TabItem
                    {
                        Name        = "episodes",
                        DisplayName = "Episodes"
                    });
                }
                else if (item.IsType("season"))
                {
                    views.Add(new TabItem
                    {
                        Name        = "episodes",
                        DisplayName = "Episodes"
                    });
                }
                else if (item.IsType("musicalbum"))
                {
                    views.Add(new TabItem
                    {
                        Name        = "songs",
                        DisplayName = "Songs"
                    });
                }
            }

            if (item.People.Length > 0)
            {
                views.Add(new TabItem
                {
                    Name        = "cast",
                    DisplayName = "Cast"
                });
            }

            if (item.LocalTrailerCount > 1)
            {
                views.Add(new TabItem
                {
                    Name        = "trailers",
                    DisplayName = "Trailers"
                });
            }

            if (item.Chapters != null && item.Chapters.Count > 0)
            {
                views.Add(new TabItem
                {
                    Name        = "scenes",
                    DisplayName = "Scenes"
                });
            }

            if (item.MediaStreams != null && item.MediaStreams.Count > 0)
            {
                views.Add(new TabItem
                {
                    Name        = "media info",
                    DisplayName = "Media Info"
                });
            }

            if (item.SpecialFeatureCount > 0)
            {
                views.Add(new TabItem
                {
                    Name        = "special features",
                    DisplayName = "Special Features"
                });
            }

            if (item.IsType("movie") || item.IsType("trailer") || item.IsType("series") || item.IsType("musicalbum") || item.IsGame)
            {
                views.Add(new TabItem
                {
                    Name        = "similar",
                    DisplayName = "Similar"
                });
            }

            if (reviewsResult.TotalRecordCount > 0 || !string.IsNullOrEmpty(item.CriticRatingSummary))
            {
                views.Add(new TabItem
                {
                    Name        = "reviews",
                    DisplayName = "Reviews"
                });
            }

            if (item.SoundtrackIds != null)
            {
                if (item.SoundtrackIds.Length > 1)
                {
                    views.Add(new TabItem
                    {
                        Name        = "soundtracks",
                        DisplayName = "Soundtracks"
                    });
                }
                else if (item.SoundtrackIds.Length > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "soundtrack",
                        DisplayName = "Soundtrack"
                    });
                }
            }

            if (item.IsArtist || item.IsGameGenre || item.IsGenre || item.IsMusicGenre || item.IsPerson || item.IsStudio)
            {
                if (item.MovieCount.HasValue && item.MovieCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemmovies",
                        DisplayName = string.Format("Movies ({0})", item.MovieCount.Value)
                    });
                }

                if (item.SeriesCount.HasValue && item.SeriesCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemseries",
                        DisplayName = string.Format("Series ({0})", item.SeriesCount.Value)
                    });
                }

                if (item.EpisodeCount.HasValue && item.EpisodeCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemepisodes",
                        DisplayName = string.Format("Episodes ({0})", item.EpisodeCount.Value)
                    });
                }

                if (item.TrailerCount.HasValue && item.TrailerCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemtrailers",
                        DisplayName = string.Format("Trailers ({0})", item.TrailerCount.Value)
                    });
                }

                if (item.GameCount.HasValue && item.GameCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemgames",
                        DisplayName = string.Format("Games ({0})", item.GameCount.Value)
                    });
                }

                if (item.AlbumCount.HasValue && item.AlbumCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemalbums",
                        DisplayName = string.Format("Albums ({0})", item.AlbumCount.Value)
                    });
                }

                if (item.SongCount.HasValue && item.SongCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemsongs",
                        DisplayName = string.Format("Songs ({0})", item.SongCount.Value)
                    });
                }

                if (item.MusicVideoCount.HasValue && item.MusicVideoCount.Value > 0)
                {
                    views.Add(new TabItem
                    {
                        Name        = "itemmusicvideos",
                        DisplayName = string.Format("Music Videos ({0})", item.MusicVideoCount.Value)
                    });
                }
            }

            if (GalleryViewModel.GetImages(item, _apiClient, null, null, true).Any())
            {
                views.Add(new TabItem
                {
                    Name        = "gallery",
                    DisplayName = "Gallery"
                });
            }

            if (themeMediaResult.ThemeVideosResult.TotalRecordCount > 0 || themeMediaResult.ThemeSongsResult.TotalRecordCount > 0)
            {
                views.Add(new TabItem
                {
                    Name        = "themes",
                    DisplayName = "Themes"
                });
            }

            return(views);
        }