private void GoToNextTip() { // If the current tip is not the last tip in the tip history, then go to the next tip in the tip history that exists. List <string> tipHistory = _tipHistoryManager.GetTipHistory(); // Is there a tip later in the history than the current tip? var currentTipIndex = tipHistory.LastIndexOf(currentTip); // Use LastIndexOf for performance as it will normally be towards the end of the list. TipInfo nextTipInHistory = GetNextTipInHistory(tipHistory, currentTipHistoryIndex: currentTipIndex); if (nextTipInHistory != null) { // Navigate to the next tip in history. NavigateToTip(nextTipInHistory, markAsSeen: false); return; } // There are no more tips to show from the history. Find a new tip. TipInfo nextTip = TipOfTheDay.GetNewTip(); var success = NavigateToTip(nextTip, markAsSeen: true); if (!success) { // Failed to show next tip. Close window. Close(); } }
private void GoToNextTip() { // If there's a next tip in the Tip History, show that. Otherwise, grab a new tip. TipInfo nextTip; TipHistoryInfo nextTipInHistory = FindNextTipInHistory(); if (nextTipInHistory != null) { // Build a TipInfo object to show in the UI nextTip = BuildTipInfoFromHistory(nextTipInHistory); } else { // Generate a new Tip to show. Set the LikeStatus to NORMAL. nextTip = TipOfTheDay.GetNewTip(); nextTip.TipLikeStatus = TipLikeEnum.NORMAL; } // Show the tip NavigateToTip(nextTip); }