public async Task <IActionResult> CommentPost(PostCommentFormViewModel postCommentFormViewModel)
        {
            if (ModelState.IsValid)
            {
                var postComment = _mapper.Map <PostCommentFormViewModel, PostComment>(postCommentFormViewModel);

                if (_accessor.HttpContext?.Connection.RemoteIpAddress != null)
                {
                    postComment.Ip = _accessor.HttpContext.Connection.RemoteIpAddress.ToString();
                }

                postComment.PostCommentStatus = PostCommentStatus.Unclear;

                _unitOfWork.PostCommentRepository.Insert(postComment);
                await _unitOfWork.Complete();

                return(new JsonResult(new JsonResultModel()
                {
                    StatusCode = JsonResultStatusCode.Success,
                    Message = ConstantMessages.CommentSentAndWillShowAfterAcceptance
                }));
            }

            return(new JsonResult(new JsonResultModel()
            {
                StatusCode = JsonResultStatusCode.ModelStateIsNotValid,
                Message = ConstantMessages.CommentFailedToSend
            }));
        }
Пример #2
0
        public async Task <IActionResult> Edit(int id, PostCommentFormViewModel postCommentFormViewModel)
        {
            if (id != postCommentFormViewModel.Id)
            {
                return(BadRequest());
            }

            if (ModelState.IsValid)
            {
                var user = await _unitOfWork.UserRepository.GetByClaimsPrincipal(HttpContext.User);

                if (!await _unitOfWork.UserRepository
                    .IsUserAllowedForOperation(user, postCommentFormViewModel.PostUserId, ConstantUserRoles.SuperAdmin))
                {
                    return(Unauthorized());
                }

                var postComment = _mapper.Map <PostCommentFormViewModel, PostComment>(postCommentFormViewModel);

                await _unitOfWork.PostCommentRepository.UpdateChildrenStatus(postComment.Id, postComment.Status);

                _unitOfWork.PostCommentRepository.Update(postComment);
                await _unitOfWork.Complete();

                return(RedirectToAction(nameof(Index)));
            }

            return(View(postCommentFormViewModel));
        }