protected override object GetContentViewModel(string section) { if (string.Equals(section, "overview")) { return _itemViewModel; } if (string.Equals(section, "reviews")) { return new CriticReviewListViewModel(_presentationManager, _apiClient, _imageManager, _itemViewModel.Item.Id); } if (string.Equals(section, "scenes")) { return new ChapterInfoListViewModel(_apiClient, _imageManager, _playback, _presentationManager) { Item = _itemViewModel.Item, ImageWidth = 410 }; } if (string.Equals(section, "cast")) { return new ItemPersonListViewModel(_apiClient, _imageManager, _presentationManager, _navigation) { Item = _itemViewModel.Item, ImageWidth = 240, ViewType = Context }; } if (string.Equals(section, "gallery")) { const int imageHeight = 230; var vm = new GalleryViewModel(_apiClient, _imageManager, _navigation) { ImageHeight = imageHeight, Item = _itemViewModel.Item }; var imageUrls = GalleryViewModel.GetImages(_itemViewModel.Item, _apiClient, null, imageHeight, true); vm.AddImages(imageUrls); return vm; } if (string.Equals(section, "similar")) { return new ItemListViewModel(GetSimilarItemsAsync, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = GetSimilarItemsImageDisplayWidth(), EnableBackdropsForCurrentItem = false, Context = Context }; } if (string.Equals(section, "special features")) { return new ItemListViewModel(GetSpecialFeatures, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 505, EnableBackdropsForCurrentItem = false, ListType = "SpecialFeatures", Context = Context, DisplayNameGenerator = FolderPage.GetDisplayName, OnItemCreated = vm => { vm.DisplayNameVisibility = Visibility.Visible; } }; } if (string.Equals(section, "episodes")) { return new ItemListViewModel(GetSeriesEpisodes, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 505, EnableBackdropsForCurrentItem = false, ListType = "SpecialFeatures", Context = Context, DisplayNameGenerator = FolderPage.GetDisplayNameWithAiredSpecial, OnItemCreated = vm => { vm.DisplayNameVisibility = Visibility.Visible; } }; } if (string.Equals(section, "themes")) { return new ItemListViewModel(GetConvertedThemeMediaResult, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "Themes", Context = Context, DisplayNameGenerator = FolderPage.GetDisplayName, OnItemCreated = vm => { vm.DisplayNameVisibility = Visibility.Visible; } }; } if (string.Equals(section, "soundtrack") || string.Equals(section, "soundtracks")) { return new ItemListViewModel(GetSoundtracks, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 400, EnableBackdropsForCurrentItem = false, Context = ViewType.Music, DisplayNameGenerator = FolderPage.GetDisplayName, }; } if (string.Equals(section, "seasons")) { return new ItemListViewModel(GetSeasons, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 300, EnableBackdropsForCurrentItem = false, Context = Context }; } if (string.Equals(section, "songs")) { return new ItemListViewModel(GetAlbumSongs, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 40, EnableBackdropsForCurrentItem = false, Context = ViewType.Music, DisplayNameGenerator = FolderPage.GetDisplayName }; } if (string.Equals(section, "trailers")) { return new ItemListViewModel(GetTrailers, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "Trailers", Context = Context, OnItemCreated = vm => { vm.DisplayNameVisibility = Visibility.Visible; } }; } if (string.Equals(section, "itemmovies")) { return GetItemByNameItemListViewModel("Movie", MoviesViewModel.PosterStripWidth, MoviesViewModel.PosterStripWidth * 1.5, ViewType.Movies); } if (string.Equals(section, "itemtrailers")) { return GetItemByNameItemListViewModel("Trailer", MoviesViewModel.PosterStripWidth, MoviesViewModel.PosterStripWidth * 1.5, ViewType.Movies); } if (string.Equals(section, "itemseries")) { return GetItemByNameItemListViewModel("Series", TvViewModel.PosterStripWidth, TvViewModel.PosterStripWidth * 1.5, ViewType.Tv); } if (string.Equals(section, "itemalbums")) { return GetItemByNameItemListViewModel("MusicAlbum", 280, 280, ViewType.Music); } if (string.Equals(section, "itemepisodes")) { return GetItemByNameItemListViewModel("Episode", 480, 270, ViewType.Tv); } return _itemViewModel; }
protected override object GetContentViewModel(string section) { if (string.Equals(section, "overview")) { return _itemViewModel; } if (string.Equals(section, "reviews")) { return new CriticReviewListViewModel(_presentationManager, _apiClient, _imageManager, _itemViewModel.Item.Id); } if (string.Equals(section, "scenes")) { return new ChapterInfoListViewModel(_apiClient, _imageManager, _playback, _presentationManager) { Item = _itemViewModel.Item, ImageWidth = 410 }; } if (string.Equals(section, "cast")) { return new ItemPersonListViewModel(_apiClient, _imageManager, _presentationManager, _navigation) { Item = _itemViewModel.Item, ImageWidth = 240, ViewType = Context }; } if (string.Equals(section, "gallery")) { const int imageHeight = 230; var vm = new GalleryViewModel(_apiClient, _imageManager, _navigation) { ImageHeight = imageHeight, Item = _itemViewModel.Item }; var imageUrls = GalleryViewModel.GetImages(_itemViewModel.Item, _apiClient, null, imageHeight, true); vm.AddImages(imageUrls); return vm; } if (string.Equals(section, "similar")) { return new ItemListViewModel(GetSimilarItemsAsync, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 300, EnableBackdropsForCurrentItem = false, Context = Context }; } if (string.Equals(section, "special features")) { return new ItemListViewModel(GetSpecialFeatures, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "SpecialFeatures", Context = Context, DisplayNameGenerator = FolderPage.GetDisplayName }; } if (string.Equals(section, "episodes")) { return new ItemListViewModel(GetSeriesEpisodes, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "SpecialFeatures", Context = Context, DisplayNameGenerator = FolderPage.GetDisplayName }; } if (string.Equals(section, "themes")) { return new ItemListViewModel(GetConvertedThemeMediaResult, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "SpecialFeatures" }; } if (string.Equals(section, "soundtrack") || string.Equals(section, "soundtracks")) { return new ItemListViewModel(GetSoundtracks, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 400, EnableBackdropsForCurrentItem = false, Context = Context }; } if (string.Equals(section, "seasons")) { return new ItemListViewModel(GetChildren, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 240, EnableBackdropsForCurrentItem = false, Context = Context }; } if (string.Equals(section, "songs")) { return new ItemListViewModel(GetAlbumSongs, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 40, EnableBackdropsForCurrentItem = false, Context = Context, DisplayNameGenerator = FolderPage.GetDisplayName }; } if (string.Equals(section, "trailers")) { return new ItemListViewModel(GetTrailers, _presentationManager, _imageManager, _apiClient, _navigation, _playback, _logger, _serverEvents) { ImageDisplayWidth = 600, EnableBackdropsForCurrentItem = false, ListType = "Trailers", Context = Context }; } if (string.Equals(section, "itemmovies")) { return GetItemByNameItemListViewModel("Movie", MoviesViewModel.PosterWidth, MoviesViewModel.PosterWidth * 1.5); } if (string.Equals(section, "itemtrailers")) { return GetItemByNameItemListViewModel("Trailer", MoviesViewModel.PosterWidth, MoviesViewModel.PosterWidth * 1.5); } if (string.Equals(section, "itemseries")) { return GetItemByNameItemListViewModel("Series", TvViewModel.PosterWidth, TvViewModel.PosterWidth * 1.5); } if (string.Equals(section, "itemalbums")) { return GetItemByNameItemListViewModel("MusicAlbum", 280, 280); } if (string.Equals(section, "itemepisodes")) { return GetItemByNameItemListViewModel("Episode", 496, 279); } if (string.Equals(section, "media info")) { return _itemViewModel.MediaStreams.Select(i => new MediaStreamViewModel { MediaStream = i, OwnerItem = _itemViewModel.Item }).ToList(); } return _itemViewModel; }