public async Task <IActionResult> CreateDiscussion(TopicViewModel model) { var tags = new List <Tag>(); if (!string.IsNullOrEmpty(model.SelectedTags)) { tags = (await tagsService.ParseTags(model.SelectedTags)).ToList(); } model.Topic = await topicsRepository.FindByIdAsync(model.TopicId); if (string.IsNullOrWhiteSpace(model.Discussion.Title)) { ModelState.AddModelError <TopicViewModel>(m => m.Discussion.Title, "Zadejte název diskuse."); return(View("Topic", model)); } if (string.IsNullOrWhiteSpace(model.Contribution.Content)) { } var user = await userManager.GetUserAsync(User); model.Discussion.Created = DateTime.Now; model.Discussion.User = user; model.Discussion.Topic = model.Topic; model.Discussion.DiscussionTags = tags.Select(t => new DiscussionTag { Tag = t }).ToList(); await discussionsRepository.CreateAsync(model.Discussion); model.Contribution.Created = DateTime.Now; model.Contribution.User = user; model.Contribution.Discussion = model.Discussion; await contributionsRepository.CreateAsync(model.Contribution); return(RedirectToAction("Discussion", new { id = model.Discussion.Id })); }