GetMentionsAndRepliesToScreenNames
(
Dictionary <String, TwitterUser> userIDDictionary
)
{
Debug.Assert(userIDDictionary != null);
HashSet <String> uniqueScreenNamesWhoTweetedSearchTerm =
TwitterGraphMLUtil.TwitterUsersToUniqueScreenNames(
userIDDictionary.Values);
HashSet <String> uniqueMentionsAndRepliesToScreenNames =
new HashSet <String>();
TwitterStatusTextParser twitterStatusTextParser =
new TwitterStatusTextParser();
foreach (TwitterUser twitterUser in userIDDictionary.Values)
{
foreach (TwitterStatus twitterStatus in twitterUser.Statuses)
{
String repliesToScreenName;
String [] uniqueMentionsScreenNames;
twitterStatusTextParser.GetScreenNames(twitterStatus.Text,
out repliesToScreenName,
out uniqueMentionsScreenNames);
if (
repliesToScreenName != null
&&
!uniqueScreenNamesWhoTweetedSearchTerm.Contains(
repliesToScreenName))
{
uniqueMentionsAndRepliesToScreenNames.Add(
repliesToScreenName);
}
foreach (String uniqueMentionsScreenName in
uniqueMentionsScreenNames)
{
if (!uniqueScreenNamesWhoTweetedSearchTerm.Contains(
uniqueMentionsScreenName))
{
uniqueMentionsAndRepliesToScreenNames.Add(
uniqueMentionsScreenName);
}
}
}
}
return(uniqueMentionsAndRepliesToScreenNames.ToArray());
}