Exemplo n.º 1
0
        public async Task <PostViewModel> UpdatePostField(UpdatePostLevelRequest request)
        {
            Post post = await postRepository.GetByIdAsync(ObjectId.Parse(request.PostId));

            if (post != null)
            {
                User currentUser = Feature.CurrentUser(httpContextAccessor, userRepository);

                if (currentUser.OId != post.AuthorId)
                {
                    throw new Exception("Bạn không có quyền chỉnh sửa nội dung này. ");
                }

                FilterDefinition <ObjectLevel> finder = Builders <ObjectLevel> .Filter.Eq("object_id", request.PostId);

                List <ObjectLevel> postExistObjectLevel = await objectLevelRepository.FindListAsync(finder);

                foreach (ObjectLevel item in postExistObjectLevel)
                {
                    await objectLevelRepository.DeleteAsync(item.Id);
                }

                foreach (ObjectLevel item in request.Field)
                {
                    item.Point        = 0;
                    item.ObjectId     = request.PostId;
                    item.CreateDate   = DateTime.Now;
                    item.ModifiedDate = DateTime.Now;
                    item.IsActive     = true;

                    await objectLevelRepository.AddAsync(item);
                }
            }

            return(mapper.Map <PostViewModel>(post));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdatePostField(UpdatePostLevelRequest request)
        {
            var data = await levelService.UpdatePostField(request);

            return(Ok(new ApiOkResponse(data)));
        }