public async Task <IActionResult> Create(Guid?TopicId, ForumMessageCreateModel model)
        {
            if (TopicId == null)
            {
                return(this.NotFound());
            }

            var topic = await this._context.ForumTopics
                        .SingleOrDefaultAsync(x => x.Id == TopicId);

            if (topic == null)
            {
                return(this.NotFound());
            }

            if (this.ModelState.IsValid)
            {
                var message = new ForumMessage
                {
                    Text              = model.Text,
                    Created           = DateTime.Now,
                    Modified          = DateTime.Now,
                    ApplicationUserId = _userManager.GetUserId(User),
                    ForumTopicId      = (Guid)TopicId
                };

                this._context.Add(message);
                await this._context.SaveChangesAsync();

                return(this.RedirectToAction("Index", new { topicId = topic.Id }));
            }

            this.ViewBag.Topic = topic;
            return(this.View(model));
        }
        public async Task <IActionResult> Create(Guid?topicId, ForumMessageCreateModel forumMessage)
        {
            if (topicId == null)
            {
                return(this.NotFound());
            }

            var topic = await this._context.ForumTopics
                        .SingleOrDefaultAsync(x => x.Id == topicId);

            if (topic == null)
            {
                return(this.NotFound());
            }

            var user = await this.userManager.GetUserAsync(this.HttpContext.User);

            if (ModelState.IsValid)
            {
                var message = new ForumMessage()
                {
                    Created      = DateTime.UtcNow,
                    Creator      = user,
                    Modified     = DateTime.UtcNow,
                    Text         = forumMessage.Text,
                    ForumTopicId = topic.Id
                };

                _context.Add(message);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "ForumTopics", new { id = topic.Id, forumId = topic.ForumId }));
            }
            ViewData["CreatorId"]    = new SelectList(_context.Users, "Id", "Id");
            ViewData["ForumTopicId"] = new SelectList(_context.ForumTopics, "Id", "CreatorId");
            return(View(forumMessage));
        }