public IHttpActionResult AddTweet([FromBody] AddTweetBindingModel model) { var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.TwitterData.Users.Find(loggedUserId); if (loggedUser == null) { return(this.BadRequest("Invalid session token.")); } if (model == null) { return(this.BadRequest("Model cannot be null (no data in request)")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var wallOwner = this.TwitterData.Users.All() .FirstOrDefault(u => u.UserName == model.WallOwnerUsername); if (wallOwner == null) { return(this.BadRequest(string.Format( "User {0} does not exist", model.WallOwnerUsername))); } var tweet = new Tweet() { Author = loggedUser, AuthorId = loggedUserId, WallOwnerId = wallOwner.Id, WallOwner = wallOwner, Content = model.Content, PostedOn = DateTime.UtcNow, }; this.TwitterData.Tweets.Add(tweet); this.TwitterData.SaveChanges(); var data = this.TwitterData.Tweets.All() .Where(p => p.Id == tweet.Id) .Select(TweetViewModel.Create) .FirstOrDefault(); return(this.Ok(data)); }
public ActionResult AddTweet(AddTweetBindingModel model) { if (model == null || !this.ModelState.IsValid) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Bad Request")); } var userId = this.User.Identity.GetUserId(); var user = this.Data.Users.Find(userId); if (user == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Bad Request")); } var tweet = new Tweet { Content = model.Content, AuthorId = userId, Author = user, WallOwnerId = userId, WallOwner = user, PostedOn = DateTime.Now }; user.OwnTweets.Add(tweet); this.Data.SaveChanges(); var dbTweet = this.Data.Tweets.All() .Where(t => t.Id == tweet.Id) .Select(TweetViewModel.Create) .AsEnumerable(); this.SendTweet(tweet.Id); if (this.Request.IsAjaxRequest()) { return(this.PartialView("DisplayTemplates/TweetViewModel", dbTweet)); } return(this.RedirectToAction("Index", "Users", routeValues: new { this.User.Identity.Name })); }
public ActionResult Add(AddTweetBindingModel model) { if (model != null && this.ModelState.IsValid) { var currentUserId = this.User.Identity.GetUserId(); var tweet = new Tweet { Content = model.Content, Page = model.PageUrl, TweetedAt = DateTime.Now, UserId = currentUserId }; this.TwitterData.Tweets.Add(tweet); this.TwitterData.SaveChanges(); this.TempData[GlobalConstants.TempMessageKey] = "You have successfully added your tweet!"; return(this.RedirectToAction("Home", "Users")); } this.TempData[GlobalConstants.TempMessageKey] = "Error during add tweet"; return(this.View("_AddTweetPartial", model)); }