예제 #1
0
        public AnswerRatingBindingModel GetTestAnswerRatingBMRatingDown(Answer answer, CustomUser user)
        {
            var model = new AnswerRatingBindingModel()
            {
                AnswerId = answer.Id,
                Username = user.UserName,
                Rating   = -1
            };

            return(model);
        }
예제 #2
0
        public ActionResult <AnswerRatingBindingModel> Post(AnswerRatingBindingModel bindingModel)
        {
            var user   = userMgr.FindByNameAsync(bindingModel.Username).Result;
            var answer = discussionsService.RateAnswer(bindingModel, user);

            if (answer == null)
            {
                return(NotFound());
            }
            return(bindingModel);
        }
예제 #3
0
        //Tested
        public Answer RateAnswer(AnswerRatingBindingModel model, CustomUser user)
        {
            var answer = this.context.Answers.FirstOrDefault(x => x.Id == model.AnswerId);

            if (model.Rating == 1)
            {
                if (!IsUserLikedAnswer(model.AnswerId, user.Id))
                {
                    var Answer = new UserAnswerLikes(answer.Id, user);
                    this.context.UsersAnswerLikes.Add(Answer);
                    if (IsUserDisLikedAnswer(model.AnswerId, user.Id))
                    {
                        var dislikedAnswer = this.context.UsersAnswerDislikes
                                             .FirstOrDefault(x => x.User.Id == user.Id && x.AnswerId == model.AnswerId);
                        this.context.UsersAnswerDislikes.Remove(dislikedAnswer);
                        this.context.SaveChanges();
                    }
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                if (!IsUserDisLikedAnswer(model.AnswerId, user.Id))
                {
                    var Answer = new UserAnswerDisLikes(answer.Id, user);
                    this.context.UsersAnswerDislikes.Add(Answer);

                    if (IsUserLikedAnswer(model.AnswerId, user.Id))
                    {
                        var likedAnswer = this.context.UsersAnswerLikes
                                          .FirstOrDefault(x => x.User.Id == user.Id && x.AnswerId == model.AnswerId);
                        this.context.UsersAnswerLikes.Remove(likedAnswer);
                        this.context.SaveChanges();
                    }
                }
                else
                {
                    return(null);
                }
            }

            answer.Rating += model.Rating;
            this.context.SaveChanges();
            return(answer);
        }