Exemplo n.º 1
0
        public IActionResult CreateTopic(Topic topic, Post post)
        {
            if (!int.TryParse(TempData["sectionId"].ToString(),
                              out int secId))
            {
                return(BadRequest());
            }
            if (!_db.Sections.Where(s => s.Id == secId).Any())
            {
                return(BadRequest());
            }

            if (ModelState.IsValid)
            {
                var user = _db.Users
                           .Single(u => u.UserName == User.Identity.Name);

                topic.User      = user;
                topic.SectionId = secId;
                _db.Topics.Add(topic);
                _db.SaveChanges();

                post.User    = user;
                post.When    = DateTime.Now;
                post.TopicId = topic.Id;
                _db.Posts.Add(post);
                _db.SaveChanges();

                _cached.UpdateSectionCardinals(secId);

                return(RedirectPermanent(
                           Url.Action("ShowTopics", new { sectionId = secId })));
            }
            else
            {
                TempData.Keep("sectionId");
                return(View());
            }
        }