private void LoadSpotlightViewModel(FavoritesView view)
        {
            const ImageType imageType = ImageType.Backdrop;

            var tileWidth  = TileWidth * 2 + TilePadding;
            var tileHeight = tileWidth * 9 / 16;

            BackdropItems = view.SpotlightItems.OrderBy(i => Guid.NewGuid()).ToArray();

            var images = view.SpotlightItems.Select(i => new ImageViewerImage
            {
                Url = ApiClient.GetImageUrl(i, new ImageOptions
                {
                    Height    = Convert.ToInt32(tileHeight),
                    Width     = Convert.ToInt32(tileWidth),
                    ImageType = imageType
                }),

                Caption = i.Name,
                Item    = i
            }).ToList();

            SpotlightViewModel.Images.AddRange(images);
            SpotlightViewModel.StartRotating(8000);
        }
        private void LoadMiniSpotlightsViewModel2(FavoritesView view)
        {
            Func <ItemListViewModel, Task <ItemsResult> > getItems = vm =>
            {
                var items = view.MiniSpotlights.Skip(2).Take(3).ToArray();

                return(Task.FromResult(new ItemsResult
                {
                    TotalRecordCount = items.Length,
                    Items = items
                }));
            };

            MiniSpotlightsViewModel2 = new ItemListViewModel(getItems, PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth             = TileWidth,
                ImageDisplayHeightGenerator   = v => TileHeight,
                DisplayNameGenerator          = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                ImageStretch = Stretch.UniformToFill,
                PreferredImageTypesGenerator = vm => new[] { ImageType.Backdrop },
                DownloadImageAtExactSize     = true
            };

            OnPropertyChanged("MiniSpotlightsViewModel2");
        }
        private void LoadEpisodesViewModel(FavoritesView view)
        {
            EpisodesViewModel = new ItemListViewModel(vm => Task.FromResult(new ItemsResult
            {
                Items            = view.Episodes.ToArray(),
                TotalRecordCount = view.Episodes.Count
            }), PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth             = TileWidth,
                ImageDisplayHeightGenerator   = v => TileHeight,
                DisplayNameGenerator          = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                PreferredImageTypesGenerator  = vm => new[] { ImageType.Primary }
            };

            OnPropertyChanged("EpisodesViewModel");
            ShowEpisodes = view.Episodes.Count > 0;
        }
        private void LoadSongsViewModel(FavoritesView view)
        {
            var tileHeight = (TileHeight * 1.46) + TilePadding / 2;
            var tileWidth  = tileHeight;

            SongsViewModel = new ItemListViewModel(vm => Task.FromResult(new ItemsResult
            {
                Items            = view.Songs.ToArray(),
                TotalRecordCount = view.Songs.Count
            }), PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth             = tileWidth,
                ImageDisplayHeightGenerator   = v => tileHeight,
                DisplayNameGenerator          = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                PreferredImageTypesGenerator  = vm => new[] { ImageType.Primary },
                ImageStretch = Stretch.UniformToFill
            };

            OnPropertyChanged("SongsViewModel");
            ShowSongs = view.Songs.Count > 0;
        }
        private void LoadSongsViewModel(FavoritesView view)
        {
            var tileHeight = (TileHeight * 1.46) + TilePadding / 2;
            var tileWidth = tileHeight;

            SongsViewModel = new ItemListViewModel(vm => Task.FromResult(new ItemsResult
            {
                Items = view.Songs.ToArray(),
                TotalRecordCount = view.Songs.Count

            }), PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth = tileWidth,
                ImageDisplayHeightGenerator = v => tileHeight,
                DisplayNameGenerator = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                PreferredImageTypesGenerator = vm => new[] { ImageType.Primary },
                ImageStretch = Stretch.UniformToFill
            };

            OnPropertyChanged("SongsViewModel");
            ShowSongs = view.Songs.Count > 0;
        }
        private void LoadEpisodesViewModel(FavoritesView view)
        {
            EpisodesViewModel = new ItemListViewModel(vm => Task.FromResult(new ItemsResult
            {
                Items = view.Episodes.ToArray(),
                TotalRecordCount = view.Episodes.Count

            }), PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth = TileWidth,
                ImageDisplayHeightGenerator = v => TileHeight,
                DisplayNameGenerator = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                PreferredImageTypesGenerator = vm => new[] { ImageType.Primary }
            };

            OnPropertyChanged("EpisodesViewModel");
            ShowEpisodes = view.Episodes.Count > 0;
        }
        private void LoadSpotlightViewModel(FavoritesView view)
        {
            const ImageType imageType = ImageType.Backdrop;

            var tileWidth = TileWidth * 2 + TilePadding;
            var tileHeight = tileWidth * 9 / 16;

            BackdropItems = view.SpotlightItems.OrderBy(i => Guid.NewGuid()).ToArray();

            var images = view.SpotlightItems.Select(i => new ImageViewerImage
            {
                Url = ApiClient.GetImageUrl(i, new ImageOptions
                {
                    Height = Convert.ToInt32(tileHeight),
                    Width = Convert.ToInt32(tileWidth),
                    ImageType = imageType

                }),

                Caption = i.Name,
                Item = i

            }).ToList();

            SpotlightViewModel.Images.AddRange(images);
            SpotlightViewModel.StartRotating(8000);
        }
        private void LoadMiniSpotlightsViewModel2(FavoritesView view)
        {
            Func<ItemListViewModel, Task<ItemsResult>> getItems = vm =>
            {
                var items = view.MiniSpotlights.Skip(2).Take(3).ToArray();

                return Task.FromResult(new ItemsResult
                {
                    TotalRecordCount = items.Length,
                    Items = items
                });
            };

            MiniSpotlightsViewModel2 = new ItemListViewModel(getItems, PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayWidth = TileWidth,
                ImageDisplayHeightGenerator = v => TileHeight,
                DisplayNameGenerator = HomePageViewModel.GetDisplayName,
                EnableBackdropsForCurrentItem = false,
                ImageStretch = Stretch.UniformToFill,
                PreferredImageTypesGenerator = vm => new[] { ImageType.Backdrop },
                DownloadImageAtExactSize = true
            };

            OnPropertyChanged("MiniSpotlightsViewModel2");
        }