public ItemOverviewViewModel(BaseItemDto item, IApiClient apiClient, IImageManager imageManager, IPlaybackManager playbackManager, ISessionManager sessionManager) { _item = item; Artwork = new ItemArtworkViewModel(item, apiClient, imageManager) { DesiredImageHeight = 700 }; Info = new ItemInfoViewModel(item); if (item.Type == "Episode") Artwork.PreferredImageTypes = new[] { ImageType.Screenshot, ImageType.Art, ImageType.Primary }; Artwork.PropertyChanged += (s, e) => { if (e.PropertyName == "Size") { OnPropertyChanged("Size"); } }; PlayCommand = new RelayCommand(o => playbackManager.Play(new PlayOptions(item) { GoFullScreen = true, EnableCustomPlayers = true, Resume = false })); ResumeCommand = new RelayCommand(o => playbackManager.Play(new PlayOptions(item) { GoFullScreen = true, EnableCustomPlayers = true, Resume = true })); PlayAllCommand = new RelayCommand(async o => { var items = await apiClient.GetItemsAsync(new Model.Querying.ItemQuery { ParentId = item.Id, UserId = sessionManager.CurrentUser.Id, Recursive = true, IncludeItemTypes = new[] { "Movie", "Episode", "Track" } }); await playbackManager.Play(new PlayOptions(items.Items) { EnableCustomPlayers = true, GoFullScreen = true }); }); }
public ItemTileViewModel(IApiClient apiClient, IImageManager imageManager, IServerEvents serverEvents, INavigator navigator, IPlaybackManager playbackManager, BaseItemDto item) { _imageManager = imageManager; _navigator = navigator; _playbackManager = playbackManager; _item = item; Image = new ItemArtworkViewModel(item, apiClient, imageManager); Image.PreferredImageTypes = new[] { ImageType.Primary, ImageType.Thumb, ImageType.Backdrop }; Image.EnforcePreferredImageAspectRatio = true; Image.PropertyChanged += (senger, args) => { if (args.PropertyName == "Size") { OnPropertyChanged("Size"); OnPropertyChanged("ShowDisplayName"); } }; DisplayNameGenerator = GetDisplayNameWithAiredSpecial; GoToDetailsCommand = new RelayCommand(async o => navigator.Navigate(Go.To.Item(Item))); PlayCommand = new RelayCommand(o => _playbackManager.Play(new PlayOptions(Item) { GoFullScreen = true, EnableCustomPlayers = true, Resume = true })); serverEvents.UserDataChanged += serverEvents_UserDataChanged; }