public IHttpActionResult EditReplay(int tweetId, int replyId, ReplyToTweetBindingModel model) { var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.TwitterData.Users.Find(loggedUserId); if (loggedUser == null) { return(this.Unauthorized()); } var tweet = this.TwitterData.Tweets.All().FirstOrDefault(p => p.Id == tweetId); if (tweet == null) { return(this.NotFound()); } var reply = this.TwitterData.Replies.All().FirstOrDefault(r => r.Id == replyId); if (reply == null) { return(this.NotFound()); } if (reply.AuthorId != loggedUser.Id) { return(this.Unauthorized()); } if (model == null) { return(this.BadRequest("Empty model is not allowed")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } reply.Content = model.Content; this.TwitterData.SaveChanges(); var replyFromDb = this.TwitterData.Replies.All().Where(r => r.Id == replyId) .Select(ReplyViewModel.Create) .FirstOrDefault(); return(this.Ok(replyFromDb)); }
public IHttpActionResult ReplyToTweet(int tweetId, ReplyToTweetBindingModel model) { var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.TwitterData.Users.Find(loggedUserId); if (loggedUser == null) { return(this.BadRequest("Invalid session token.")); } var tweet = this.TwitterData.Tweets.Find(tweetId); if (tweet == null) { return(this.NotFound()); } if (model == null) { return(this.BadRequest("Empty model is not allowed")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var reply = new Reply() { Content = model.Content, PostedOn = DateTime.UtcNow, AuthorId = loggedUserId }; tweet.Replies.Add(reply); this.TwitterData.SaveChanges(); var response = this.TwitterData.Replies.All() .Where(r => r.Id == reply.Id) .Select(ReplyViewModel.Create) .FirstOrDefault(); return(this.Ok(response)); }