Beispiel #1
0
        public void ProcessTweet(List <Tweet> tweets)
        {
            string str = string.Empty;


            Parallel.Invoke
            (
                () => { StaticticalAverages.Process(tweets.Count); },
                () =>
            {
                var tweetsWithHashtag = tweets.AsParallel()
                                        .Where(t => t.Data?.HasHashTag == true)
                                        .SelectMany(t => t.Data.Collection.HashTags.Select(ht => ht.Tag.ToLower()));
                HashtagStatictics.AddToAttributeTracker(tweetsWithHashtag);
            },
                () =>
            {
                foreach (Tweet tweet in tweets)
                {
                    if (string.IsNullOrEmpty(tweet.Data?.Text))
                    {
                        continue;
                    }
                    var emojisInTweets = _emojiService.GetEmojisFromTweet(tweet.Data.Text);
                    EmojiStatictics.AddToAttributeTracker(emojisInTweets);
                    List <string> domains = new List <string>();
                    if (tweet.Data.HasUrl)
                    {
                        domains.AddRange(tweet.Data.Collection.Urls.Select(x =>
                        {
                            var result = x.Display_Url.Split('/');
                            return(result[0]);
                        }).ToList());

                        UrlStatictics.AddUrlProperties(domains);
                    }
                }
            }
            );
        }