private void SuggestionHide() { SuggestionMessenger.Raise(new SuggestionNotification { SuggestWords = null, IsOpen = false }); }
private void SuggestionCheck() { if (_tokens == null) { SuggestionMessenger.Raise(new SuggestionNotification { SuggestWords = null, IsOpen = false }); return; } try { var token = SuggestionService.GetTokenFromPosition(_tokens, _selectionStart); var words = new List <string>(); switch (token.Type) { case SuggestionService.SuggestionToken.SuggestionTokenId.HashTag: foreach (var userId in Connecter.Instance.TweetCollecter.Keys) { lock (Connecter.Instance.TweetCollecter[userId].EntitiesObjectsLock) { words.AddRange(Connecter.Instance.TweetCollecter[userId] .HashTagObjects.Where(x => x.StartsWith(token.Value)) .OrderBy(x => x)); } } break; case SuggestionService.SuggestionToken.SuggestionTokenId.ScreenName: if (!string.IsNullOrEmpty(token.Value)) { foreach (var userId in Connecter.Instance.TweetCollecter.Keys) { lock (Connecter.Instance.TweetCollecter[userId].EntitiesObjectsLock) { words.AddRange(Connecter.Instance.TweetCollecter[userId] .ScreenNameObjects.Where(x => x.StartsWith(token.Value)) .OrderBy(x => x)); } } } break; case SuggestionService.SuggestionToken.SuggestionTokenId.Emoji: if (!string.IsNullOrEmpty(token.Value)) { words.AddRange(EmojiPatterns.EmojiDictionary .Where(x => x.Key.StartsWith(token.Value)) .OrderBy(x => x.Key) .Select(x => x.Value + "\t" + x.Key)); } break; } SuggestionMessenger.Raise( new SuggestionNotification { SuggestWords = words, IsOpen = words.Count > 0 }); } catch { SuggestionMessenger.Raise(new SuggestionNotification { SuggestWords = null, IsOpen = false }); } }