Example #1
0
        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 }));
        }