Beispiel #1
0
        public async Task <bool> AddThreadAsync(StatusTweet stTweet, string userId)
        {
            //var user = await _userManager.FindByIdAsync(userId);

            var thread = new SavedThread()
            {
                IsFavourite         = stTweet.IsFavourite,
                FavoriteCount       = stTweet.FavoriteCount,
                RetweetCount        = stTweet.RetweetCount,
                TweetText           = stTweet.TweetText,
                Url                 = stTweet.Url,
                Language            = stTweet.Language,
                IsPossiblySensitive = stTweet.IsPossiblySensitive,
                Created             = stTweet.Created,
            };

            var isThreadExist = await _appDbContext.SavedThreads.FirstOrDefaultAsync(th => th.Url == thread.Url);

            if (isThreadExist == null)
            {
                await _appDbContext.SavedThreads.AddAsync(thread);
            }

            if (_appDbContext.SaveChanges() > 0)
            {
                return(true);
            }

            return(false);
        }
        public async Task <StatusTweet> GetUserThreadAsync(string tweetUrl)
        {
            var tweetId = tweetUrl.Substring(tweetUrl.LastIndexOf('/') + 1);

            var resultTweetList = new List <StatusTweet>();

            var tweet = await _twitterService.GetTweetAsync(new GetTweetOptions
            {
                Id = Convert.ToInt64(tweetId),
                IncludeEntities  = true,
                IncludeMyRetweet = false,
            });

            var search = await GetTwitterStatusesAsync(tweet.Value);

            var statusTweets = search
                               .Select(tw => new StatusTweet
            {
                IsFavourite         = tw.IsFavorited,
                FavoriteCount       = tw.FavoriteCount,
                RetweetCount        = tw.RetweetCount,
                TweetText           = tw.Text,
                Url                 = $"https://twitter.com/{tw.User.ScreenName}/status/{tw.IdStr}",
                Language            = tw.Language,
                IsPossiblySensitive = tw.IsPossiblySensitive,
                Created             = tw.CreatedDate,
                UserName            = tw.User.Name,
                UserScreenName      = tw.User.ScreenName,
                MediaUrl            = _sMediaHelper.SelectMediaBase(tw)
            })
                               .ToList();

            for (int i = 0; i < search.Count; i++)
            {
                statusTweets[i].Replies = (await GetReplyToRepliesAsync(search[i]));
            }

            resultTweetList.AddRange(statusTweets);

            var result = new StatusTweet
            {
                IsFavourite         = tweet.Value.IsFavorited,
                RetweetCount        = tweet.Value.RetweetCount,
                FavoriteCount       = tweet.Value.FavoriteCount,
                TweetText           = tweet.Value.Text,
                Url                 = $"https://twitter.com/{tweet.Value.User.ScreenName}/status/{tweet.Value.IdStr}",
                Language            = tweet.Value.Language,
                IsPossiblySensitive = tweet.Value.IsPossiblySensitive,
                Created             = tweet.Value.CreatedDate,
                UserName            = tweet.Value.User.Name,
                UserScreenName      = tweet.Value.User.ScreenName,
                Replies             = resultTweetList,
                MediaUrl            = _sMediaHelper.SelectMediaBase(tweet.Value)
            };

            return(result);
        }
Beispiel #3
0
        // Gets Twitter Feed from azure database
        public static ICollection <StatusTweet> GetTweetsOnlyFeedFromDB(string twitterAccountToDisplay)
        {
            var stList = new List <StatusTweet>();

            try
            {
                using (var dbContext = new OnlyTweetContext())
                {
                    dbContext.Database.Connection.Open();
                    //Get top 20 Status Tweets from the database
                    var query = (from t in dbContext.OnlyTweetDB
                                 where t.ScreenName == twitterAccountToDisplay
                                 orderby t.CreatedAt descending
                                 select t).Take(20);

                    //Console.WriteLine("All Status Tweet in the database:");
                    foreach (var item in query)
                    {
                        var st = new StatusTweet();
                        //Console.WriteLine("{0}:\n{1}\n\t{2}\n\t{3}\n\", item.StatusID, item.ScreenName, item.Text, item.CreatedAt);

                        st.Text           = item.Text;
                        st.CreatedAt      = item.CreatedAt;
                        st.StatusID       = item.StatusID;
                        st.ScreenName     = item.ScreenName;
                        st.StringStatusID = item.StatusID.ToString();

                        switch (item.ScreenName)
                        {
                        case "Linq2Twitr":     //Sample Username: https://twitter.com/Linq2Twitr
                            st.ProfileImageUrlHttps = "https://pbs.twimg.com/profile_images/378800000625948439/57f4351535721aeedc632745ceaacfea_400x400.png";
                            break;

                        default:
                            st.ProfileImageUrlHttps = "";
                            break;
                        }

                        stList.Add(st);
                    }
                }
            }
            catch (Exception ex)
            {
                string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : String.Empty;
                //Console.WriteLine("{0}\n{1}", ex.Message, innerMessage);
            }

            return(stList.ToList());
        }
        // Gets Twitter Feed from azure database
        public static ICollection<StatusTweet> GetTweetsOnlyFeedFromDB(string twitterAccountToDisplay)
        {
            var stList = new List<StatusTweet>();
            try
            {
                using (var dbContext = new OnlyTweetContext())
                {
                    dbContext.Database.Connection.Open();
                    //Get top 20 Status Tweets from the database 
                    var query = (from t in dbContext.OnlyTweetDB
                                 where t.ScreenName == twitterAccountToDisplay
                                 orderby t.CreatedAt descending
                                 select t).Take(20);

                    //Console.WriteLine("All Status Tweet in the database:");
                    foreach (var item in query)
                    {
                        var st = new StatusTweet();
                        //Console.WriteLine("{0}:\n{1}\n\t{2}\n\t{3}\n\", item.StatusID, item.ScreenName, item.Text, item.CreatedAt);

                        st.Text = item.Text;
                        st.CreatedAt = item.CreatedAt;
                        st.StatusID = item.StatusID;
                        st.ScreenName = item.ScreenName;
                        st.StringStatusID = item.StatusID.ToString();

                        switch (item.ScreenName)
                        {
                            case "Linq2Twitr": //Sample Username: https://twitter.com/Linq2Twitr
                                st.ProfileImageUrlHttps = "https://pbs.twimg.com/profile_images/378800000625948439/57f4351535721aeedc632745ceaacfea_400x400.png";
                                break;
                            default:
                                st.ProfileImageUrlHttps = "";
                                break;
                        }

                        stList.Add(st);
                    }

                }
            }
            catch (Exception ex)
            {
                string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : String.Empty;
                //Console.WriteLine("{0}\n{1}", ex.Message, innerMessage);
            }

            return stList.ToList();
        }