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); }
// 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(); }