public WhatsNewViewModel(IPlatformServices platformServices) : base(platformServices) { this.whatsNewDataController = ServiceRegistry.GetService <IWhatsNewDataController>(); this.genreListDataController = ServiceRegistry.GetService <IGenreListDataController>(); this.genreList = new MainThreadObservableCollectionAdapter <IGenreViewModel>(this.genreListDataController.TheList, PlatformServices.MainThreadDispatcher); this.newReleases = new MainThreadObservableCollectionAdapter <IAlbumViewModel>(this.whatsNewDataController.NewReleases, PlatformServices.MainThreadDispatcher); this.deezerPicks = new MainThreadObservableCollectionAdapter <IAlbumViewModel>(this.whatsNewDataController.DeezerPicks, PlatformServices.MainThreadDispatcher); this.genreListDataController.OnFetchStateChanged += OnGenreListFetchStateChanged; this.whatsNewDataController.OnNewReleaseFetchStateChanged += OnNewReleaseFetchStateChanged; this.whatsNewDataController.OnDeezerPicksFetchStateChanged += OnDeezerPicksFetchStateChanged; this.selectedGenreIndex = this.genreList.Count == 0 ? 0 : this.genreList.Select((x, i) => new { Genre = x, Index = i }) .Where(x => x.Genre.Id == this.whatsNewDataController.CurrentGenreFilter) .Single() .Index; this.whatsNewDataController.BeginPopulateAsync(); this.genreListDataController.RefreshGenreListAsync(); }
public ChartsViewModel(IPlatformServices platformServices) : base(platformServices) { this.chartsDataController = ServiceRegistry.GetService <IChartsDataController>(); this.genreListDataController = ServiceRegistry.GetService <IGenreListDataController>(); this.genreList = new MainThreadObservableCollectionAdapter <IGenreViewModel>(this.genreListDataController.TheList, PlatformServices.MainThreadDispatcher); this.albums = new MainThreadObservableCollectionAdapter <IAlbumViewModel>(this.chartsDataController.AlbumChart, PlatformServices.MainThreadDispatcher); this.artists = new MainThreadObservableCollectionAdapter <IArtistViewModel>(this.chartsDataController.ArtistChart, PlatformServices.MainThreadDispatcher); this.tracks = new MainThreadObservableCollectionAdapter <ITrackViewModel>(this.chartsDataController.TrackChart, PlatformServices.MainThreadDispatcher); this.playlists = new MainThreadObservableCollectionAdapter <IPlaylistViewModel>(this.chartsDataController.PlaylistChart, PlatformServices.MainThreadDispatcher); this.genreListDataController.OnFetchStateChanged += OnGenreListFetchStateChanged; this.chartsDataController.OnAlbumChartFetchStateChanged += OnAlbumChartFetchStatusChanged; this.chartsDataController.OnArtistChartFetchStateChanged += OnArtistChartFetchStatusChanged; this.chartsDataController.OnTrackChartFetchStateChanged += OnTrackChartFetchStatusChanged; this.chartsDataController.OnPlaylistChartFetchStateChanged += OnPlaylistChartFetchStatusChanged; //TODO: Need stop this 'Begin' call required before executing the below LINQ command stuff this.chartsDataController.BeginPopulateAsync(); this.genreListDataController.RefreshGenreListAsync(); this.selectedGenreIndex = this.genreList.Count == 0 ? 0 : this.genreList.Select((x, i) => new { Genre = x, Index = i }) .Where(x => x.Genre.Id == this.chartsDataController.CurrentGenreFilter) .SingleOrDefault() .Index; }