Ejemplo n.º 1
0
        public ActionResult CreateTweet(TweetViewModel tweet)
        {
            var user = this.Data.Users.GetById(User.Identity.GetUserId());

            if (!ModelState.IsValid)
            {

                ModelState.AddModelError("CustomError",
                    "Tweet length must be between 1 and 140 symbols!");
            }
            else
            {
                Tweet entity = new Tweet()
                {
                    DateTweeted = DateTime.Now,
                    Text = tweet.Text,
                    User = user
                };

                this.Data.Tweets.Add(entity);

                var tags = Regex.Matches(tweet.Text, @"((?:#){1}[\w\d]{1,140})");

                foreach (object tag in tags)
                {
                    string tagAsString = tag.ToString();

                    Tag newTag = this.Data.Tags.All().FirstOrDefault(t => t.Name == tagAsString);

                    if (newTag == null)
                    {
                        newTag = new Tag()
                        {
                            Name = tagAsString
                        };
                    }

                    entity.Tags.Add(newTag);
                }

                this.Data.SaveChanges();
            }

            var tweets = user.Tweets
                                 .Select(t => new TweetViewModel()
                                 {
                                     DateTweeted = t.DateTweeted,
                                     Text = t.Text,
                                     Author = t.User.UserName
                                 })
                                 .OrderByDescending(t => t.DateTweeted)
                                 .ToList();

            return PartialView("_TweetPartial", tweets);
        }
Ejemplo n.º 2
0
        public ActionResult Create(Tweet tweet)
        {
            if (ModelState.IsValid)
            {
                db.Tweets.Add(tweet);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.UserId = new SelectList(db.Users, "Id", "UserName", tweet.UserId);
            return View(tweet);
        }
Ejemplo n.º 3
0
        public ActionResult Create(CreateTweetModel tweet)
        {
            if (ModelState.IsValid)
            {
                var user = this.db.Users.FirstOrDefault(u => u.UserName == this.User.Identity.Name);

                var newTweet = new Tweet
                {
                    Message = tweet.Message,
                    AuthorId = user.Id
                };

                db.Tweets.Add(newTweet);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            //ViewBag.AuthorId = new SelectList(db.Users, "Id", "Email", tweet.AuthorId);
            return View(tweet);
        }
        public ActionResult Create(Tweet tweet)
        {
            if (!String.IsNullOrEmpty(tweet.Content) && tweet != null)
            {
                tweet.DateTweeded = DateTime.Now;
            }
            if (ModelState.IsValid)
            {
                if (User.Identity.IsAuthenticated)
                {
                    var user = db.Users.All().FirstOrDefault(x => x.UserName == User.Identity.Name);
                    tweet.User = user;
                    db.Tweets.Add(tweet);

                    var tagsMatches= Regex.Matches(tweet.Content, "(\\#\\S+)");

                    var tags = new HashSet<Tag>();
                    for (int i = 0; i < tagsMatches.Count; i++)
                    {
                        var newTag = tagsMatches[i].Value;

                        var tag = db.Tags.All().FirstOrDefault(t => t.Name == newTag);
                        if (tag == null)
	                    {
                            tags.Add(new Tag { Name = newTag });
	                    }
                        else
                        {
                            tags.Add(tag);
                        }
                    }
                    tweet.Tags = tags;

                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            }

            return View(tweet);
        }
 public ActionResult Edit(Tweet tweet)
 {
     if (ModelState.IsValid)
     {
         db.Tweets.Update(tweet);
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     return View(tweet);
 }
Ejemplo n.º 6
0
 public ActionResult Edit(Tweet tweet)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tweet).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.UserId = new SelectList(db.Users, "Id", "UserName", tweet.UserId);
     return View(tweet);
 }