コード例 #1
0
ファイル: PostsController.cs プロジェクト: mdockal/Hikkaba
        public async Task <IActionResult> Create(PostAnonymousCreateViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var thread = await _threadService.GetAsync(viewModel.ThreadId);

                if (!thread.IsClosed)
                {
                    var postDto = _mapper.Map <PostDto>(viewModel);
                    postDto.UserIpAddress = UserIpAddress.ToString();
                    postDto.UserAgent     = UserAgent;

                    var postId = await _postService.CreateAsync(viewModel.Attachments, postDto);

                    return
                        (Redirect(Url.Action("Details", "Threads",
                                             new
                    {
                        categoryAlias = viewModel.CategoryAlias,
                        threadId = viewModel.ThreadId
                    }) + "#" + postId));
                }
                else
                {
                    throw new HttpResponseException(HttpStatusCode.Forbidden, $"Thread {thread.Id} is closed.");
                }
            }
            else
            {
                ViewBag.ErrorMessage = ModelState.ModelErrorsToString();
                return(View(viewModel));
            }
        }
コード例 #2
0
ファイル: PostsController.cs プロジェクト: mdockal/Hikkaba
        public async Task <IActionResult> Create(string categoryAlias, TPrimaryKey threadId)
        {
            var category = await _categoryService.GetAsync(categoryAlias);

            var thread = await _threadService.GetAsync(threadId);

            var postAnonymousCreateViewModel = new PostAnonymousCreateViewModel
            {
                CategoryAlias = category.Alias,
                ThreadId      = thread.Id,
            };

            return(View(postAnonymousCreateViewModel));
        }