private void LoadRomanticMoviesViewModel(MoviesView view) { var now = DateTime.Now; if (now.DayOfWeek == DayOfWeek.Friday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && now.Hour >= 15; } else if (now.DayOfWeek == DayOfWeek.Saturday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && (now.Hour < 3 || now.Hour >= 15); } else if (now.DayOfWeek == DayOfWeek.Sunday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && now.Hour < 3; } else { ShowRomanticMovies = false; } var images = view.RomanceItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); RomanticMoviesViewModel.AddImages(images); }
private void LoadSpotlightViewModel(MoviesView view) { const ImageType imageType = ImageType.Backdrop; var tileWidth = TileWidth * 2 + TileMargin; var tileHeight = tileWidth * 9 / 16; BackdropItems = view.BackdropItems.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(10000); }
private async void LoadViewModels() { PresentationManager.ShowLoadingAnimation(); var cancellationSource = _mainViewCancellationTokenSource = new CancellationTokenSource(); try { var view = await ApiClient.GetMovieView(_sessionManager.CurrentUser.Id, ParentId, cancellationSource.Token); _moviesView = view; LoadSpotlightViewModel(view); LoadAllMoviesViewModel(view); LoadMiniSpotlightsViewModel(view); LoadLatestMoviesViewModel(view); LoadLatestTrailersViewModel(view); LatestMoviesViewModel.CurrentItemUpdated += LatestMoviesViewModel_OnCurrentItemUpdated; LatestTrailersViewModel.CurrentItemUpdated += LatestTrailersViewModel_OnCurrentItemUpdated; MiniSpotlightsViewModel.CurrentItemUpdated += MiniSpotlightsViewModel_OnCurrentItemUpdated; } catch (Exception ex) { _logger.ErrorException("Error getting movie view", ex); PresentationManager.ShowDefaultErrorMessage(); } finally { PresentationManager.HideLoadingAnimation(); DisposeMainViewCancellationTokenSource(false); } }
private void LoadMiniSpotlightsViewModel(MoviesView view) { Func <ItemListViewModel, Task <ItemsResult> > getItems = vm => { var items = view.MiniSpotlights.Take(3).ToArray(); return(Task.FromResult(new ItemsResult { TotalRecordCount = items.Length, Items = items })); }; MiniSpotlightsViewModel = new ItemListViewModel(getItems, PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents) { ImageDisplayWidth = TileWidth + (TileMargin / 4) - 1, ImageDisplayHeightGenerator = v => TileHeight, DisplayNameGenerator = HomePageViewModel.GetDisplayName, EnableBackdropsForCurrentItem = false, ImageStretch = Stretch.UniformToFill, PreferredImageTypesGenerator = vm => new[] { ImageType.Backdrop }, DownloadImageAtExactSize = true, OnItemCreated = vm => { vm.DisplayNameVisibility = Visibility.Visible; } }; OnPropertyChanged("MiniSpotlightsViewModel"); }
private void LoadComedyMoviesViewModel(MoviesView view) { var now = DateTime.Now; if (now.DayOfWeek == DayOfWeek.Thursday) { ShowComedyItems = view.ComedyItems.Count > 0 && now.Hour >= 12; ComedyItemsViewModel.Name = "Comedy Night"; } else if (now.DayOfWeek == DayOfWeek.Sunday) { ShowComedyItems = view.ComedyItems.Count > 0; ComedyItemsViewModel.Name = "Sunday Funnies"; } else { ShowComedyItems = false; } var images = view.ComedyItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); ComedyItemsViewModel.AddImages(images); }
private void LoadAllMoviesViewModel(MoviesView view) { var images = view.MovieItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); AllMoviesViewModel.AddImages(images); }
private void LoadActorsViewModel(MoviesView view) { var images = view.PeopleItems.Take(1).Select(i => ApiClient.GetPersonImageUrl(i.Name, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Height = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); ActorsViewModel.AddImages(images); }
private void LoadFamilyMoviesViewModel(MoviesView view) { ShowFamilyMovies = view.FamilyMovies.Count > 0 && view.FamilyMoviePercentage > 10 && view.FamilyMoviePercentage < 90; var images = view.FamilyMovies.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); FamilyMoviesViewModel.AddImages(images); }
private void LoadLatestTrailersViewModel(MoviesView view) { LatestTrailersViewModel = new ItemListViewModel(GetLatestTrailersAsync, PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents) { ImageDisplayWidth = _posterTileWidth, ImageDisplayHeightGenerator = v => _posterTileHeight, DisplayNameGenerator = HomePageViewModel.GetDisplayName, PreferredImageTypesGenerator = vm => new[] { ImageType.Primary }, EnableBackdropsForCurrentItem = false }; OnPropertyChanged("LatestTrailersViewModel"); LatestTrailersVisibility = view.TrailerItems.Count > 0 ? Visibility.Visible : Visibility.Collapsed; }
private void LoadComedyMoviesViewModel(MoviesView view) { var now = DateTime.Now; if (now.DayOfWeek == DayOfWeek.Thursday) { ShowComedyItems = view.ComedyItems.Count > 0 && now.Hour >= 12; ComedyItemsViewModel.Name = "Comedy Night"; } else if (now.DayOfWeek == DayOfWeek.Sunday) { ShowComedyItems = view.ComedyItems.Count > 0; ComedyItemsViewModel.Name = "Sunday Funnies"; } else { ShowComedyItems = false; } var images = view.ComedyItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); ComedyItemsViewModel.AddImages(images); }
private void LoadRomanticMoviesViewModel(MoviesView view) { var now = DateTime.Now; if (now.DayOfWeek == DayOfWeek.Friday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && now.Hour >= 15; } else if (now.DayOfWeek == DayOfWeek.Saturday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && (now.Hour < 3 || now.Hour >= 15); } else if (now.DayOfWeek == DayOfWeek.Sunday) { ShowRomanticMovies = view.RomanceItems.Count > 0 && now.Hour < 3; } else { ShowRomanticMovies = false; } var images = view.RomanceItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); RomanticMoviesViewModel.AddImages(images); }
private void LoadActorsViewModel(MoviesView view) { var images = view.PeopleItems.Take(1).Select(i => ApiClient.GetPersonImageUrl(i.Name, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Height = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); ActorsViewModel.AddImages(images); }
private void LoadSpotlightViewModel(MoviesView view) { const ImageType imageType = ImageType.Backdrop; var tileWidth = TileWidth * 2 + TilePadding; var tileHeight = tileWidth * 9 / 16; BackdropItems = view.BackdropItems.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(10000); }
private void LoadMiniSpotlightsViewModel2(MoviesView 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 LoadLatestTrailersViewModel(MoviesView view) { LatestTrailersViewModel = new ItemListViewModel(GetLatestTrailersAsync, PresentationManager, _imageManager, ApiClient, _navService, _playbackManager, _logger, _serverEvents) { ImageDisplayWidth = _posterTileWidth, ImageDisplayHeightGenerator = v => _posterTileHeight, DisplayNameGenerator = HomePageViewModel.GetDisplayName, PreferredImageTypesGenerator = vm => new[] { ImageType.Primary }, EnableBackdropsForCurrentItem = false }; OnPropertyChanged("LatestTrailersViewModel"); LatestTrailersVisibility = view.TrailerItems.Count > 0 ? Visibility.Visible : Visibility.Collapsed; }
private void LoadFamilyMoviesViewModel(MoviesView view) { ShowFamilyMovies = view.FamilyMovies.Count > 0 && view.FamilyMoviePercentage > 10 && view.FamilyMoviePercentage < 90; var images = view.FamilyMovies.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); FamilyMoviesViewModel.AddImages(images); }
private void LoadTrailersViewModel(MoviesView view) { ShowTrailers = view.TrailerItems.Count > 0; var images = view.TrailerItems.Take(1).Select(i => ApiClient.GetImageUrl(i.Id, new ImageOptions { ImageType = i.ImageType, Tag = i.ImageTag, Width = Convert.ToInt32(TileWidth * 2), EnableImageEnhancers = false })); TrailersViewModel.AddImages(images); }
private async void LoadViewModels() { PresentationManager.ShowLoadingAnimation(); var cancellationSource = _mainViewCancellationTokenSource = new CancellationTokenSource(); try { var view = await ApiClient.GetMovieView(_sessionManager.CurrentUser.Id, cancellationSource.Token); _moviesView = view; LoadSpotlightViewModel(view); LoadAllMoviesViewModel(view); LoadMiniSpotlightsViewModel(view); LoadLatestMoviesViewModel(view); LoadLatestTrailersViewModel(view); LatestMoviesViewModel.CurrentItemUpdated += LatestMoviesViewModel_OnCurrentItemUpdated; LatestTrailersViewModel.CurrentItemUpdated += LatestTrailersViewModel_OnCurrentItemUpdated; MiniSpotlightsViewModel.CurrentItemUpdated += MiniSpotlightsViewModel_OnCurrentItemUpdated; } catch (Exception ex) { _logger.ErrorException("Error getting movie view", ex); PresentationManager.ShowDefaultErrorMessage(); } finally { PresentationManager.HideLoadingAnimation(); DisposeMainViewCancellationTokenSource(false); } }