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)); }
public async Task <IActionResult> UpdatePostField(UpdatePostLevelRequest request) { var data = await levelService.UpdatePostField(request); return(Ok(new ApiOkResponse(data))); }