Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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);
        }