public async Task <ProfileStatisticDto> updateConditionOfPost(PostConditionDto postConditionDto) { UserCondition userCondition = await _post.updateConditionOfPost(postConditionDto); ProfileStatisticDto profileStatisticDto = _mapper.Map <ProfileStatisticDto>(userCondition); return(profileStatisticDto); }
public async Task <IActionResult> updatePostCondition([FromBody] PostConditionDto postConditionDto) { //if ((User.FindFirst(ClaimTypes.NameIdentifier).Value) != Request.Headers["UserId"]) //{ // return Unauthorized(); //} if (!ModelState.IsValid) { return(Ok()); } postConditionDto.UserId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value); ProfileStatisticDto profileStatisticDto = await _post.updateConditionOfPost(postConditionDto); return(Ok(profileStatisticDto)); }
public async Task <UserCondition> updateConditionOfPost(PostConditionDto postConditionDto) { Post post = await _ctx.Post.Where(m => m.PostId == postConditionDto.PostId && m.UserId == postConditionDto.UserId).FirstOrDefaultAsync(); UserCondition userCondition = new UserCondition(); if (post != null) { int previousCondition = post.Condition; post.Condition = postConditionDto.Condition; post.UpdatedDate = DateTime.Now; _ctx.Post.Update(post); int row = await _ctx.SaveChangesAsync(); userCondition = await _ctx.UserCondition.Where(m => m.UserId == postConditionDto.UserId).FirstOrDefaultAsync(); if (userCondition != null) { if (postConditionDto.Condition == 1) { if (previousCondition == 0) { userCondition.SuccessCount += 1; userCondition.UnknownCount -= 1; } else if (previousCondition == -1) { userCondition.SuccessCount += 1; userCondition.FailureCount -= 1; } _ctx.UserCondition.Update(userCondition); int rowUserCondition = await _ctx.SaveChangesAsync(); } else if (postConditionDto.Condition == -1) { if (previousCondition == 0) { userCondition.FailureCount += 1; userCondition.UnknownCount -= 1; } else if (previousCondition == 1) { userCondition.FailureCount += 1; userCondition.SuccessCount -= 1; } _ctx.UserCondition.Update(userCondition); int rowUserCondition = await _ctx.SaveChangesAsync(); if (rowUserCondition > 0) { userCondition = await _ctx.UserCondition.Where(m => m.UserId == postConditionDto.UserId).FirstOrDefaultAsync(); } } } } return(userCondition); }