Example #1
0
        public async Task <ActionResult> ViewTweets(TweetModel viewModel)
        {
            TweetModel modelAsync = await _IServiceTweets.GetTweetsAsync(viewModel);

            // Sending data to View
            return(View(modelAsync));
        }
        public async Task <TweetModel> GetRandomTweets(string searchQuery)
        {
            var accessToken = _config["AccessToken"];

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization
                    = new AuthenticationHeaderValue("Bearer", accessToken);

                var url      = new Uri($"https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name={searchQuery}&count=50&tweet_mode=extended&exclude_replies=true");
                var response = await client.GetAsync(url);

                string json;
                using (var content = response.Content)
                {
                    json = await content.ReadAsStringAsync();
                }

                var tweets = JsonConvert.DeserializeObject <List <TweetModel> >(json);

                var random    = new Random();
                var randomNum = random.Next(0, 50);

                TweetModel randomTweet = tweets[randomNum];
                return(randomTweet);
            }
        }
        public void UpdateStats(TweetStatisticsModel statsModel, TweetModel newTweet)
        {
            statsModel.CountTweetsReceived += 1;
            var hashTags       = GetHashtags(newTweet);
            var emojis         = GetEmojis(newTweet);
            var urlsDictionary = GetDomainsDictionary(newTweet);

            if (hashTags.Count > 0)
            {
                statsModel.UpdateHashtagsUsed(hashTags);
            }

            if (emojis.Count > 0)
            {
                statsModel.UpdateEmojisUsed(emojis);
                statsModel.CountTweetsWithEmojis += 1;
            }

            if (urlsDictionary.Count > 0)
            {
                statsModel.CountTweetsWithUrls += 1;
                if (newTweet.ContainsOneOrMorePhotoUrl)
                {
                    statsModel.CountTweetsWithPhotoUrls += 1;
                }

                statsModel.UpdateDomainsUsed(urlsDictionary);
            }
            // will update end time for every tweet, and end with the time of the final one
            statsModel.EndTime = DateTimeOffset.Now;
        }
Example #4
0
        private TweetModel GetTweet(string userName, int tweetId)
        {
            TweetModel    model = new TweetModel();
            AppRepository repo  = new AppRepository();

            model.TweetMessage = new TweetMessage();

            var Tweets       = repo.GetAllTweets(userName);
            var tweetDetails = repo.GetTweetMessageDetails(userName);

            if (tweetId == 0)
            {
                model.TweetMessage.User_Id = userName;
            }
            else
            {
                model.TweetMessage = Tweets.Where(x => x.Tweet_Id == tweetId).FirstOrDefault();
            }

            model.lstTweetMessage = Tweets;
            model.TotalTweets     = tweetDetails.TotalTweets;
            model.TotalFollowing  = tweetDetails.TotalFollowing;
            model.TotalFollowers  = tweetDetails.TotalFollowers;
            return(model);
        }
        public async Task IsGettingRetweetInfoInRepository()
        {
            AppUser userModel = new AppUser {
                Nickname = "marcow"
            };

            _dbContext.Users.Add(userModel);
            Assert.NotNull(userModel.Id);

            TweetModel tweetModel = new TweetModel {
                UserId = userModel.Id, Text = "Super tweet!"
            };

            _dbContext.Add <TweetModel>(tweetModel);
            _dbContext.SaveChanges();

            Retweet retweet = new Retweet {
                UserId = userModel.Id, TweetId = tweetModel.Id
            };
            await _repository.Create(retweet);

            retweet = await _repository.GetInfo(retweet);

            Assert.AreEqual(userModel.Id, retweet.User.Id);
            Assert.AreEqual(tweetModel.Text, retweet.Tweet.Text);
        }
Example #6
0
        public static void ExtractHashtags(this TweetModel model)
        {
            var modelCopy = new TweetModel(model.TweetId, model.ProcessedText);
            var extracted = ReplaceAndExtractTexts(modelCopy, "#", " ", ExtractionDelimiter, " ");

            model.Hashtags = extracted;
        }
Example #7
0
        public async Task <ActionResult <TweetModel> > PostTweet(string content)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return(Problem(detail: "A tweet cannot have no content", statusCode: 400));
            }
            if (content.Length > 280)
            {
                return(Problem(detail: "A tweet cannot have more than 280 characters!.", statusCode: 400));
            }
            if (User == null)
            {
                return(Problem(detail: "User not found, are you signed in?", statusCode: 422));
            }
            //create a new tweet with the content supplied by the user
            TweetModel tweet = new TweetModel();

            tweet.Content   = content;
            tweet.Username  = User.Identity.Name;
            tweet.Timestamp = DateTime.Now;

            _db.Tweets.Add(tweet);  //add the tweet to the database
            try
            {
                await _db.SaveChangesAsync();
            }
            catch (Exception e)
            {
                _logger.LogError($"An error occured while trying to save changes to database. Message: {e.Message}");
                return(Problem(detail: "An error occured while trying to save changes to database.", statusCode: 500));
            }

            return(CreatedAtAction("PostTweet", new { id = tweet.Id }, tweet));
        }
Example #8
0
    private static string GetTitleFrom(TweetModel t)
    {
        string firstHashtag = GetFirstHashTag(t.FullText);

        //obligatory hipster hashtag
        return($"#{firstHashtag}");
    }
Example #9
0
        public void Save(TweetModel tweetModel)
        {
            var userId    = _tweetContext.Users.Where(x => x.Username == tweetModel.Username).Select(x => x.UserId).FirstOrDefault();
            var twittedBy = _tweetContext.Users.Where(x => x.Username == tweetModel.TwittedBy).Select(x => x.UserId).FirstOrDefault();

            // TODO: User device should come from UI/Client once user logs in to the APP.
            var userDeviceId = _tweetContext.UserDevices.Where(x => x.UserId == twittedBy).Select(x => x.UserDeviceId).FirstOrDefault();

            // user tweets from new device
            if (userDeviceId == 0)
            {
                UserDeviceEntity userDeviceEntity = new UserDeviceEntity()
                {
                    UserId       = userId,
                    DeviceName   = "Test device",               // TODO: Pass device name from UI/Client
                    DeviceTypeId = (int)UserDeviceType.Desktop, // TODO: Pass device type from UI/Client
                };
                _tweetContext.UserDevices.Add(userDeviceEntity);
                _tweetContext.SaveChanges();
            }

            var tweetEntity = new TweetEntity()
            {
                TweetContent = tweetModel.TweetContent,
                TwittedBy    = twittedBy,
                UserId       = userId,
                UserDeviceId = userDeviceId,
                TweetTime    = DateTime.Now
            };

            _tweetContext.Tweets.Add(tweetEntity);
            _tweetContext.SaveChanges();
        }
Example #10
0
        public IActionResult PostTweet(TweetModel tweet)
        {
            if (ModelState.IsValid)
            {
                bool isUnique = false;
                if (Database.Instance.Tweets.Count == 0)
                {
                    tweet.ID = Guid.NewGuid().ToString();
                    isUnique = true;
                }
                while (!isUnique)
                {
                    tweet.ID = Guid.NewGuid().ToString();
                    //Check if the generated ID already exists
                    foreach (var _tweet in Database.Instance.Tweets)
                    {
                        if (_tweet.ID != tweet.ID)
                        {
                            isUnique = true;
                        }
                    }
                }
                tweet.Timestamp = DateTime.Now;
            }
            //Debug
            System.Console.WriteLine("ID: " + tweet.ID);
            System.Console.WriteLine("Poster: " + tweet.Poster);
            System.Console.WriteLine("Content: " + tweet.Content);
            System.Console.WriteLine("Date: " + tweet.Timestamp);
            Database.Instance.Tweets.Add(tweet);
            Database.Instance.SaveToFile();

            Response.Cookies.Append("poster", tweet.Poster);
            return(View("Index"));
        }
Example #11
0
        /// <summary>
        /// Authenticate with keys and start listening to twitter sample stream, add new tweets to DB
        /// </summary>
        public static void BeginTwitterStream()
        {
            // Get Authentication
            Auth.SetUserCredentials("QLX3za3r0cdo4b11D3uoD9uqZ",
                                    "WE8fLGr2oRkTJjpwJmwoN9xVZmXGPXYAS23NSdA1qP7jFVDE1m",
                                    "1159076078369091584-T2hT14Q4NIZZUbMH2UVWyNPikwdNmS",
                                    "T7gb0JAKj3yErHbSW9CCO8eLLdm0l6Ki4IwiF94DoFYRm");

            // Create Stream
            var stream = Stream.CreateSampleStream();

            // sign into event
            stream.TweetReceived += (sender, args) =>
            {
                if (!(args.Tweet.Coordinates is null))
                {
                    // Add to DB
                    Console.WriteLine("Tweet received with location");
                    var tweetToInsertToDB = new TweetModel()
                    {
                        _id         = args.Tweet.Id,
                        Text        = args.Tweet.FullText,
                        UserName    = args.Tweet.CreatedBy.Name,
                        Coordinates = new CoordinatesModel(args.Tweet.Coordinates.Latitude,
                                                           args.Tweet.Coordinates.Longitude)
                    };
                    DBManager.InsertObject(tweetToInsertToDB);
                }
            };

            // Start steam
            stream.StartStream();
        }
        public TweetModel GetTweetMessageDetails(string userName)
        {
            TweetModel tweetModel = new TweetModel();

            try
            {
                using (_dbContext = new TwitterCloneEntities())
                {
                    var tweets    = _dbContext.Tweets.Where(x => x.User_Id.Trim().ToUpper() == userName.ToUpper().Trim());
                    var following = _dbContext.Followings.Where(x => x.User_Id.Trim().ToUpper() == userName.ToUpper().Trim());
                    var followers = _dbContext.Followings.Where(x => x.Following_id.Trim().ToUpper() == userName.ToUpper().Trim());

                    if (tweets != null)
                    {
                        tweetModel.TotalTweets = tweets.Count();
                    }

                    if (followers != null)
                    {
                        tweetModel.TotalFollowers = followers.Count();
                    }

                    if (following != null)
                    {
                        tweetModel.TotalFollowing = following.Count();
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(tweetModel);
        }
Example #13
0
        private static string ReplaceAndExtractTexts(TweetModel model, string prefixString, string stopString, string extractionDelimiter, string replaceToken)
        {
            var text      = model.ProcessedText;
            var extracted = string.Empty;

            var separators   = new string[] { prefixString };
            var splittedText = text.Split(separators, StringSplitOptions.RemoveEmptyEntries);

            if (splittedText.Count() > 0)
            {
                foreach (var subText in splittedText)
                {
                    var splittedSubText = subText.Split(new string[] { stopString }, StringSplitOptions.RemoveEmptyEntries);
                    if (splittedSubText.Count() > 0)
                    {
                        var replaceText = prefixString + splittedSubText[0];
                        if (text.IndexOf(replaceText) >= 0)
                        {
                            text       = text.Replace(replaceText, replaceToken);
                            extracted += replaceText + extractionDelimiter;
                        }
                    }
                }
            }

            model.ProcessedText = text.Trim();

            if (extracted.Length > 0)
            {
                extracted = extracted.Remove(extracted.Length - extractionDelimiter.Length);
            }

            return(extracted.Trim());
        }
Example #14
0
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            Info   info        = new Info();
            string header      = txtHeader.Text;
            string tweetSender = txtSender.Text.Replace(" ", String.Empty);
            string message     = txtMessage.Text;
            bool   headerOk    = Message.HeaderOk(header);

            if (!headerOk || !header.ToUpper().StartsWith("T"))
            {
                info.DisplayMessage("Incorrect Header", "SMS Header must begin with 'T', followed by 9 numbers");
            }
            else if (!tweetSender.StartsWith("@"))
            {
                info.DisplayMessage("Sender Incorrect", "Sender must be a valid Twitter handle beginning with @");
            }
            else if (message == "")
            {
                info.DisplayMessage("No Message", "Please enter a message");
            }
            else
            {
                txtMessage.Text = string.Join(" ", TSA.ReplaceWords(txtMessage.Text.Split(' ')));
                TweetModel tweet = new TweetModel(header, message, tweetSender);
                tweet.ParseTweet();
                tweet.OutputJson();
                info.DisplayMessage("Success", "Tweet submitted successfuly");
            }
        }
Example #15
0
        public static void ExtractFirstLetterCapitalizedWords(this TweetModel model, int minWordLength)
        {
            var extracted = string.Empty;

            var modelCopy = new TweetModel(model.TweetId, model.ProcessedText);

            modelCopy.ExtractAndReplacePunctuationMarks(" ");

            var textSplit = modelCopy.ProcessedText.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var word in textSplit)
            {
                if (word.Length >= minWordLength &&
                    char.IsUpper(word[0]))    //Is capitalized
                {
                    extracted += word + ExtractionDelimiter;
                }
            }

            if (extracted.Length > 0)
            {
                extracted = extracted.Remove(extracted.Length - ExtractionDelimiter.Length);
            }

            model.FirstLetterCapitalizedWords = extracted.Trim();
        }
Example #16
0
        public ActionResult ViewTweets()
        {
            TweetModel viewModel = new TweetModel();

            viewModel.TweetsData = Enumerable.Empty <TweetsData>();
            return(View(viewModel));
        }
Example #17
0
        public async Task IsRemovingUserTweetReactionInToggle()
        {
            this.populate();

            List <UserTweetReactionModel> models = _dbContext.UserTweetReaction.ToList();

            Assert.AreEqual(0, models.Count);

            AppUser       user     = _dbContext.Users.FirstOrDefault(u => u.Nickname == "marcow");
            TweetModel    tweet    = _dbContext.Tweet.FirstOrDefault(t => t.UserId == user.Id);
            ReactionModel reaction = _dbContext.Reaction.FirstOrDefault(r => r.Name == "Star");

            UserTweetReaction userTweetReaction = new UserTweetReaction
            {
                UserId = user.Id, TweetId = tweet.Id, ReactionId = reaction.Id
            };

            await _repository.Toggle(userTweetReaction);

            models = _dbContext.UserTweetReaction.ToList();
            Assert.AreEqual(1, models.Count);

            userTweetReaction.Id = 0;
            await _repository.Toggle(userTweetReaction);

            models = _dbContext.UserTweetReaction.ToList();
            Assert.AreEqual(0, models.Count);
        }
Example #18
0
        public static TweetModel MapTweet(Tweet tweet)
        {
            TweetModel tweetModel = new TweetModel();

            try
            {
                if (tweet != null)
                {
                    tweetModel = new TweetModel()
                    {
                        Id           = tweet.Id,
                        Text         = tweet.Text,
                        FullText     = tweet.FullText,
                        Url          = !string.IsNullOrEmpty(tweet.Url) ? tweet.Url : string.Empty,
                        Urls         = UrlMapper.MapUrls(tweet.Urls),
                        TweetMode    = tweet.TweetMode,
                        Contributors = tweet.Contributors != null ? tweet.Contributors : null,
                        Retweeted    = tweet.Retweeted,
                        RetweetCount = tweet.RetweetCount,
                        Hashtags     = HashtagMapper.MapHashTags(tweet.Hashtags),
                        Media        = MediaMapper.MapListOfMedia(tweet.Media)
                    };
                }
            }
            catch
            {
            }
            return(tweetModel);
        }
Example #19
0
        private static string ExtractCharacterNgrams(this TweetModel model, string extractionDelimiter, int n)
        {
            var extracted = string.Empty;
            var ngram     = string.Empty;
            var counter   = 0;

            for (int i = 0; i < model.ProcessedText.Length; i++)
            {
                var characterString = model.ProcessedText[i].ToString();

                counter++;
                ngram += characterString;

                if (counter % n == 0)
                {
                    extracted += ngram + extractionDelimiter;

                    ngram   = string.Empty;
                    counter = 0;
                    i      -= n - 1;
                }
            }

            if (extracted.Length > 0)
            {
                extracted = extracted.Remove(extracted.Length - extractionDelimiter.Length);
            }

            return(extracted);
        }
Example #20
0
        private static string ExtractWordNgrams(this TweetModel model, string extractionDelimiter, int n)
        {
            var extracted = string.Empty;
            var ngram     = string.Empty;
            var splitted  = model.ProcessedText.Split(' ');
            var counter   = 0;

            for (int i = 0; i < splitted.Length; i++)
            {
                if (string.IsNullOrEmpty(splitted[i]))
                {
                    continue;
                }

                counter++;
                ngram += splitted[i] + " ";

                if (counter % n == 0)
                {
                    ngram      = ngram.Remove(ngram.Length - 1);
                    extracted += ngram + extractionDelimiter;

                    ngram   = string.Empty;
                    counter = 0;
                    i      -= n - 1;
                }
            }

            if (extracted.Length > 0)
            {
                extracted = extracted.Remove(extracted.Length - extractionDelimiter.Length);
            }

            return(extracted);
        }
Example #21
0
        public TweetModel GetFavouriteRetweetCount(TweetModel tweet)
        {
            string         tempUrl              = string.Format("https://api.twitter.com/1.1/statuses/show/{0}.json", tweet.TweetID);
            HttpWebRequest timeLineRequest      = (HttpWebRequest)WebRequest.Create(tempUrl);
            var            timelineHeaderFormat = "{0} {1}";

            timeLineRequest.Headers.Add("Authorization", string.Format(timelineHeaderFormat, TwitterSingleton.Instance.tokenType, TwitterSingleton.Instance.accessToken));
            timeLineRequest.Method = "Get";
            WebResponse timeLineResponse = timeLineRequest.GetResponse();
            var         timeLineJson     = string.Empty;

            using (timeLineResponse)
            {
                using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                {
                    timeLineJson = reader.ReadToEnd();
                    dynamic data = JObject.Parse(timeLineJson);
                    tweet.RetweetCount   = data.retweet_count;
                    tweet.FavouriteCount = data.favorite_count;
                    tweet.SetScore();
                }
            }

            return(tweet);
        }
        public TweetModel GetTweetById(string tweetId)
        {
            TweetModel tweetModel = new TweetModel();

            tweetModel = _tweetRepository.FindByCondition(tweetId);

            return(tweetModel);
        }
Example #23
0
        public static void ReplaceCharacters(this TweetModel model, string replaceString, string replaceToken)
        {
            var result = string.Empty;

            result = model.ProcessedText.Replace(replaceString, replaceToken).Trim();

            model.ProcessedText = result;
        }
Example #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        public async Task <TweetModel> GetTweetsAsync(TweetModel viewModel)
        {
            TweetModel resultModel = new TweetModel();

            try
            {
                // HttpClient is used for sending HTTP requests and receiving HTTP responses from a resource identified by a URI
                using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
                {
                    // Building url by appending input parameters from viewmodel
                    string queryParams = ApiUrl + $"?startDate={viewModel.StartDate}&endDate={viewModel.EndDate}";

                    client.BaseAddress = new Uri(ApiUrl);

                    // Clearing Accept headers for the Http Request
                    client.DefaultRequestHeaders.Accept.Clear();

                    // Adding Header to  Http Request Accept: 'application/json'
                    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));


                    System.Net.Http.HttpResponseMessage response = await client.GetAsync(queryParams);

                    // When http respose StatusCode is 500
                    if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError)
                    {
                        resultModel.StatusMessage = "Something went wrong!";
                    }

                    // When http respose StatusCode is 400
                    if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                    {
                        resultModel.StatusMessage = "Invalid startDate and/or endDate";
                    }

                    if (response.IsSuccessStatusCode)
                    {
                        // Sets the collection to Empty.
                        resultModel.TweetsData = Enumerable.Empty <TweetsData>();

                        var twitterList = await response.Content.ReadAsAsync <IEnumerable <TweetsData> >();

                        resultModel.TotalCount = twitterList.Count();

                        // EqualityComparer used to remove duplicate enteries from collection.
                        resultModel.TweetsData = twitterList.Distinct(new EqualityComparer());

                        resultModel.CurrentCount = resultModel.TweetsData.Count();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(resultModel);
        }
Example #25
0
 public JsonResult AddTweet(TweetModel tweet)
 {
     Model.Tweet newTweet = new Model.Tweet();
     newTweet.message  = tweet.Message;
     newTweet.tweet_id = tweet.Tweet_id;
     newTweet.user_id  = User.Identity.Name;
     person.AddOrUpdateTweet(newTweet);
     return(Json("Ok"));
 }
Example #26
0
        public ActionResult Index(int EdittweetId = 0, string userName = null)
        {
            TweetModel model = new TweetModel();

            userName      = Convert.ToString(Session["UserName"]);
            ViewBag.Users = GetUserList();
            model         = GetTweet(userName, EdittweetId);
            return(View(model));
        }
Example #27
0
        public async Task <IActionResult> PutTweet(Guid id, string content)
        {
            if (User == null)
            {
                return(Problem(detail: "User not found, are you signed in?", statusCode: 422));
            }
            if (string.IsNullOrWhiteSpace(content))
            {
                return(Problem(detail: "A tweet cannot have no content.", statusCode: 400));
            }
            if (content.Length > 280)
            {
                return(Problem(detail: "A tweet cannot have more than 280 characters!.", statusCode: 400));
            }
            //find the tweet referenced by the GUID
            var Tweet = _db.Tweets.FirstOrDefault(tweet => tweet.Id == id);

            if (Tweet == null)
            {
                return(Problem(detail: "Tweet not found.", statusCode: 404));
            }
            string Username = User.Identity.Name;

            //make sure the tweet belongs to the user
            if (Tweet.Username != Username)
            {
                return(Problem(detail: "You cannot update someone else's tweet!", statusCode: 400));
            }
            //create a new tweet object, and fill it in.
            TweetModel EditedTweet = new TweetModel();

            EditedTweet.Username  = Username;
            EditedTweet.Content   = content;
            EditedTweet.Id        = id;
            EditedTweet.Timestamp = DateTime.Now;   //update the timestamp to reflect when it was edited.
            var oldTweet = _db.Tweets.Find(id);

            _db.Tweets.Remove(oldTweet);    //remove the old tweet and add the new one.
            _db.Tweets.Add(EditedTweet);
            try
            {
                await _db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TweetExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("PutTweet", EditedTweet));
        }
Example #28
0
        public ActionResult Index()
        {
            TweetModel tweetModel = new TweetModel();

            foreach (Tweet tweet in StaticResourcesConfig.Tweets)
            {
                if (!tweetModel.UsersTweets.ContainsKey(tweet.TweetingUser))
                {
                    List <Tweet> tweets = new List <Tweet>();
                    tweets.Add(tweet);
                    tweetModel.UsersTweets.Add(tweet.TweetingUser, tweets);
                }
                else
                {
                    tweetModel.UsersTweets[tweet.TweetingUser].Add(tweet);
                }

                List <User> usersFollowers = tweet.TweetingUser.GetFollowers();

                foreach (User follower in usersFollowers)
                {
                    if (!tweetModel.UsersTweets.ContainsKey(follower))
                    {
                        List <Tweet> tweets = new List <Tweet>();
                        tweets.Add(tweet);
                        tweetModel.UsersTweets.Add(follower, tweets);
                    }
                    else
                    {
                        tweetModel.UsersTweets[follower].Add(tweet);
                    }
                }
            }

            foreach (User user in StaticResourcesConfig.Users)
            {
                if (!tweetModel.UsersTweets.ContainsKey(user))
                {
                    tweetModel.UsersTweets.Add(user, null);
                }
            }

            Dictionary <User, List <Tweet> > outputModel = new Dictionary <User, List <Tweet> >();

            var orderedModel = tweetModel.UsersTweets.OrderBy(o => o.Key.Name);

            foreach (var userTweet in orderedModel)
            {
                outputModel.Add(userTweet.Key, userTweet.Value);
            }

            tweetModel.UsersTweets = outputModel;


            return(View(tweetModel));
        }
Example #29
0
 public static void EditTweet(TweetModel model)
 {
     using (var ctx = new EFMVCContext())
     {
         var tweet = ctx.Tweets.FirstOrDefault(a => a.tweet_id == model.TweetId);
         tweet.message = model.Message;
         ctx.Tweets.Remove(model.GetTweet());
         ctx.SaveChanges();
     }
 }
Example #30
0
 public static Tweet GetTweet(this TweetModel model)
 {
     return(new Tweet
     {
         user_id = model.UserId,
         created = model.Created,
         message = model.Message,
         tweet_id = model.TweetId
     });
 }
        public ActionResult GetUserTimelinePartialView()
        {
            TweetInputModel tweetInputModel = new TweetInputModel();
            TweetModel tweetModel = new TweetModel();
            IEnumerable<TweetModel> foundTweets = tweetModel.GetUserTimeline(tweetInputModel);
         
            // Transfer data from TweetModel to TweetViewModel
            IList<TweetViewModel> groupOfTweets = new List<TweetViewModel>();
            foreach (TweetModel tweet in foundTweets)
            {
                TweetViewModel tweetViewModel = new TweetViewModel();
                tweetViewModel.Message = tweet.Message;
                groupOfTweets.Add(tweetViewModel);
            }

            return PartialView("UserTimelinePartialView", groupOfTweets);
        }
        private void TwitterSearchCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if(e.Error != null)
                return;
            
            JObject json = JObject.Parse(e.Result);
            JArray results = (JArray)json["results"];
            TweetModel tweetModel = null;


            ObservableCollection<TweetModel> tweets = new ObservableCollection<TweetModel>();

            foreach(JObject result in results) {
                tweetModel = new TweetModel();
                tweetModel.Content = HttpUtility.HtmlDecode((string)result["text"]);
                tweetModel.Profile = (string)result["from_user"];
                tweetModel.ProfileImage = (string)result["profile_image_url"];
                tweetModel.TimeStamp = (string)result["created_at"];

                tweets.Add(tweetModel);
            }
            this.Tweets = tweets;
       
        }