protected override void OnActivate()//called every page load { base.OnActivate(); if (currentUserName != AppDataAccessor.GetUsername()) { Groups = new BindableCollection <HubGroupViewModel>();//clears old page after logout OnInitialize(); } SettingsPane.GetForCurrentView().CommandsRequested += CharmsData.SettingCharmManager_HubCommandsRequested; ProgressRingVisibility = Visibility.Collapsed; ProgressRingIsActive = false; PageIsEnabled = true; LastViewedResponse response = AppDataAccessor.GetLastViewed(); if (response.ID != null && ServiceAccessor.ConnectedToInternet()) { Game LastViewedGame = new Game { gameId = response.ID, opponent = response.name, date = DateTime.Parse(response.timeStamp) }; //this is actually a playlist - not a game GameViewModel lastViewed = new GameViewModel(LastViewedGame, true, isLastviewed: true); lastViewed.Thumbnail = response.thumbnail; lastViewed.Stretch = "UniformToFill"; LastViewedVM = new HubGroupViewModel() { Name = "Last Viewed", Games = new BindableCollection <GameViewModel>() }; LastViewedVM.Games.Add(lastViewed); if (Groups.Count == 0 && (NoScheduleEntriesText == null || NoScheduleEntriesText == "")) { ProgressRingVisibility = Visibility.Visible; ProgressRingIsActive = true; } if (Groups.Count >= 3) { HubGroupViewModel oldLastViewed = Groups.Where(u => u.Name == "Last Viewed").FirstOrDefault(); if (oldLastViewed != null) { Groups[Groups.IndexOf(oldLastViewed)] = LastViewedVM; } else { Groups.Insert(1, LastViewedVM); } } } }
private void PopulateGroups() { BindableCollection <HubGroupViewModel> NewGroups = new BindableCollection <HubGroupViewModel>(); //If these aren't set here, if there is no schedule, these still link to another season's next and last games. _previousGame = null; _nextGame = null; games = selectedSeason.games; if (ServiceAccessor.ConnectedToInternet()) { games = selectedSeason.games; GetNextPreviousGames(); NextGameVM.Games = new BindableCollection <GameViewModel>(); LastGameVM.Games = new BindableCollection <GameViewModel>(); if (_previousGame != null) { GameViewModel previous = new GameViewModel(_previousGame, true, isPreviousGame: true); previous.FetchPlaylists = previous.FetchThumbnailsAndPlaylistCounts(); previous.IsLargeView = true; LastGameVM.Games.Add(previous); } if (_nextGame != null) { GameViewModel next = new GameViewModel(_nextGame, true, isNextGame: true); next.IsLargeView = true; next.FetchPlaylists = next.FetchThumbnailsAndPlaylistCounts(); NextGameVM.Games.Add(next); } LastViewedResponse response = AppDataAccessor.GetLastViewed(); if (response.ID != null) { NewGroups.Add(LastViewedVM); } if (NextGameVM.Games.Count() > 0) { NewGroups.Add(NextGameVM); } if (LastGameVM.Games.Count() > 0) { NewGroups.Add(LastGameVM); } } if (games != null) { HubGroupViewModel schedule = new HubGroupViewModel() { Name = "Schedule", Games = new BindableCollection <GameViewModel>() }; HubGroupViewModel otherItems = new HubGroupViewModel() { Name = "Other", Games = new BindableCollection <GameViewModel>() }; foreach (Game g in games) { GameViewModel gamevm = new GameViewModel(g); gamevm.FetchPlaylists = gamevm.FetchThumbnailsAndPlaylistCounts(); if (g.Classification == 1) { schedule.Games.Add(gamevm); } else { otherItems.Games.Add(gamevm); } } if (schedule.Games.Count > 0) { NewGroups.Add(schedule); } if (otherItems.Games.Count > 0) { NewGroups.Add(otherItems); } } ProgressRingVisibility = Visibility.Collapsed; ProgressRingIsActive = false; if (NewGroups.Count == 0) { NoScheduleEntriesText = "There are no schedule entries for this season"; } else { NoScheduleEntriesText = ""; } Groups = NewGroups; }