예제 #1
0
        public ActionResult Create(CreateTweetViewModel model)
        {
            var user = this.database.Users.All()
                       .FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (user == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ModelState.IsValid)
            {
                var tweet = new Tweet()
                {
                    PostDate = DateTime.Now,
                    Text     = model.Text,
                    User     = user
                };

                this.database.Tweets.Add(tweet);
                this.database.SaveChanges();

                return(RedirectToAction("All"));
            }

            return(View(model));
        }
예제 #2
0
        private void AddNewTweet(CreateTweetViewModel model)
        {
            var tweetToSave = this.Mapper.Map <Tweet>(model);

            tweetToSave.ApplicationUserId = this.User.Identity.GetUserId();
            var tags = this.tagExtractor.ExtractTags(tweetToSave.OriginalContent);

            if (tags.Count > 0)
            {
                foreach (var tag in tags)
                {
                    var tagFromDatabase = this.tags.GetAll().FirstOrDefault(t => t.Name == tag.Name);
                    if (tagFromDatabase != null)
                    {
                        tweetToSave.Tags.Add(tagFromDatabase);
                    }
                    else
                    {
                        tweetToSave.Tags.Add(tag);
                    }
                }
            }

            var displayContent = this.tagRepalceService.ReplaceHashtagsWithLinks(tweetToSave.OriginalContent);

            tweetToSave.DisplayContent = displayContent;

            this.tweets.Add(tweetToSave);
        }
예제 #3
0
        // GET: Tweet
        public ActionResult Create(CreateTweetViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                this.AddNewTweet(model);
                return(this.RedirectToAction("Index", "Home"));
            }

            return(this.View("_CreateTweetPartial", model));
        }
예제 #4
0
        public ActionResult CreateTweet(CreateTweetViewModel model)
        {
            if (ModelState.IsValid)
            {
                var loggedUserId = User.Identity.GetUserId();

                var tweet = new Tweet
                {
                    CreatedAt = DateTime.Now,
                    Content   = model.Content,
                    UserId    = loggedUserId
                };

                this.Data.Tweets.Add(tweet);
                this.Data.SaveChanges();

                return(RedirectToAction("Index", "Home"));
            }
            return(View(model));
        }
 public CreateTweetPage()
 {
     InitializeComponent();
     BindingContext = new CreateTweetViewModel();
 }