public ItemSpotlightViewModel(IImageManager imageManager, IApiClient apiClient) { _apiClient = apiClient; _urlsToItems = new Dictionary<string, BaseItemDto>(); Images = new ImageSlideshowViewModel(imageManager, Enumerable.Empty<string>()) { ImageStretch = Stretch.UniformToFill }; Images.PropertyChanged += (s, e) => { if (e.PropertyName == "CurrentImageUrl") { BaseItemDto item = CurrentItem; CurrentCaption = item != null ? item.Name : null; OnPropertyChanged("CurrentItem"); } }; ItemSelectedCommand = new RelayCommand(o => { BaseItemDto item = CurrentItem; Action<BaseItemDto> action = ItemSelectedAction; if (action != null && item != null) { action(item); } }); }
public MovieSpotlightViewModel(Task<MoviesView> moviesViewTask, IImageManager imageManager, INavigator navigator, IApiClient apiClient, IServerEvents serverEvents, IPlaybackManager playbackManager, ISessionManager sessionManager, ILogManager logManager) { _imageManager = imageManager; _navigator = navigator; _apiClient = apiClient; _serverEvents = serverEvents; _playbackManager = playbackManager; _sessionManager = sessionManager; _logger = logManager.GetLogger("Movies Spotlight"); SpotlightHeight = HomeViewModel.TileHeight*2 + HomeViewModel.TileMargin*2; SpotlightWidth = 16*(SpotlightHeight/9) + 100; _miniSpotlightWidth = HomeViewModel.TileWidth + (HomeViewModel.TileMargin/4) - 1; LowerSpotlightWidth = SpotlightWidth/2 - HomeViewModel.TileMargin; LowerSpotlightHeight = HomeViewModel.TileHeight; BrowseMoviesCommand = new RelayCommand(arg => { var itemParams = new ItemListParameters { Items = GetMovies(), Title = "Browse Movies" }; navigator.Navigate(Go.To.ItemList(itemParams)); //await navigator.Navigate(Go.To.Item(await _apiClient.GetPersonAsync("Chris Pine", sessionManager.CurrentUser.Id))); }); SpotlightViewModel = new ItemSpotlightViewModel(imageManager, apiClient) { ImageType = ImageType.Backdrop, ItemSelectedAction = i => navigator.Navigate(Go.To.Item(i)) }; AllMoviesImagesViewModel = new ImageSlideshowViewModel(imageManager, Enumerable.Empty<string>()) { ImageStretch = Stretch.UniformToFill }; MiniSpotlightItems = new RangeObservableCollection<ItemTileViewModel> { CreateMiniSpotlightItem(), CreateMiniSpotlightItem(), CreateMiniSpotlightItem(), }; LoadViewModels(moviesViewTask); }