/// <summary> /// /// </summary> private async Task ProcessAutoSuggestValuesAsync() { string currentAdressBarValue = this.AdressBarDisplayText; this.AdressBarSuggestValues.Clear(); Dictionary <string, List <HistoryItem> > history = await this._historyManager.GetHistoryAsync(); var foundedItems = history.Select( x => x.Value.Where( y => (!string.IsNullOrEmpty(y.Title) && !string.IsNullOrWhiteSpace(y.Title) && (y.Title.ToLowerInvariant().Contains(currentAdressBarValue.ToLowerInvariant()) || y.Uri.ToString().ToLowerInvariant().Contains(currentAdressBarValue.ToLowerInvariant()))) ) ); List <HistoryItem> suggestEntries = new List <HistoryItem>(); foreach (var foundItemList in foundedItems) { List <HistoryItem> items = foundItemList.ToList(); foreach (HistoryItem historyItem in items) { suggestEntries.Add(historyItem); } } suggestEntries = suggestEntries.GroupBy(x => x.Uri).Select(g => g.First()).ToList(); foreach (HistoryItem suggestEntry in suggestEntries) { AutoSuggestItem autoSuggestItem = new AutoSuggestItem { WebsiteUri = suggestEntry.Uri.ToString(), WebsiteTitle = suggestEntry.Title }; if (!string.IsNullOrEmpty(suggestEntry.Icon.Trim()) && !string.IsNullOrWhiteSpace(suggestEntry.Icon.Trim())) { autoSuggestItem.WebsiteIcon = new Uri(suggestEntry.Icon); } this.AdressBarSuggestValues.Add(autoSuggestItem); } }
/// <summary> /// /// </summary> private void ProcessAdressBarSuggestionChosen(AutoSuggestBoxSuggestionChosenEventArgs eventArgs) { AutoSuggestItem chosenSuggestValue = (eventArgs.SelectedItem as AutoSuggestItem); this.ProcessAdressBarValue(chosenSuggestValue.WebsiteUri); }