public ActionResult DislikeAnswer(int answerId) { QuestionsService service = new QuestionsService(); var model = service.LikeAnswer(answerId, User.Identity.GetUserId(), false); return(PartialView("_AnswerLikes", model)); }
public ActionResult LikeAnswer(int answerId) { QuestionsService service = new QuestionsService(); var model = service.LikeAnswer(answerId, User.Identity.GetUserId(), true); return(PartialView("_AnswerLikes", CopyAnswerModelDataToRepresentativeAnswerModel(model))); }
public void QuestionAndAnswerLikes_ChainMethods() { QuestionsService service = new QuestionsService(); Law law = null; ApplicationUser user1 = null; ApplicationUser user2 = null; ApplicationUser user3 = null; try { user1 = Helpers.CreateNewUser(); user2 = Helpers.CreateNewUser(); user3 = Helpers.CreateNewUser(); law = Helpers.CreateLaw(1, new List <string> { "AmirFazlic", "AsimSarajlic" }, new List <string> { "First Question", "Second Question" }, user1.Id); var questionID = law.Questions.First().QuestionID; var repID = law.LawRepresentativeAssociations.First().RepresentativeID; var nextRepID = law.LawRepresentativeAssociations.Where(x => x.RepresentativeID != repID).First().RepresentativeID; service.PostAnswer(questionID, repID, "Test Answer"); service.PostAnswer(questionID, nextRepID, "Test Answer"); var modelPriorToLikes = service.GetQuestionsForLaw(law.LawID, user2.Id); var question = modelPriorToLikes.Questions.Where(x => x.Id == questionID).First(); var answer = question.Representatives.Where(x => x.ID == repID).First().Answer; Assert.AreEqual(0, question.LikesCount, "New Question no one liked yet"); Assert.IsFalse(question.UserLiked.HasValue, "New question user did not like yet"); Assert.AreEqual(0, answer.LikesCount, "New answer no one liked yet"); Assert.IsFalse(answer.UserLiked.HasValue, "New answer user did not like yet"); service.LikeQuestion(question.Id, user1.Id, true); service.LikeQuestion(question.Id, user2.Id, true); service.LikeAnswer(answer.ID, user1.Id, false); service.LikeAnswer(answer.ID, user2.Id, true); service.LikeAnswer(answer.ID, user3.Id, false); var modelForUser2 = service.GetQuestionsForLaw(law.LawID, user2.Id); question = modelForUser2.Questions.Where(x => x.Id == questionID).First(); var nextQuestion = modelForUser2.Questions.Where(x => x.Id != questionID).First(); answer = question.Representatives.Where(x => x.ID == repID).First().Answer; var nextAnswer = question.Representatives.Where(x => x.ID == nextRepID).First().Answer; Assert.AreEqual(2, question.LikesCount, "2 users liked"); Assert.AreEqual(0, question.DislikesCount, "0 users disliked"); Assert.IsTrue(question.UserLiked.HasValue, "User2 liked"); Assert.AreEqual(0, nextQuestion.LikesCount, "0 users liked next question"); Assert.AreEqual(0, nextQuestion.DislikesCount, "0 users disliked next question"); Assert.IsFalse(nextQuestion.UserLiked.HasValue, "User2 did not like next question"); Assert.AreEqual(1, answer.LikesCount, "1 user liked answer"); Assert.AreEqual(2, answer.DislikesCount, "2 users disliked answer"); Assert.IsTrue(answer.UserLiked.HasValue, "user2 liked answer"); Assert.IsTrue(answer.UserLiked.Value, "user2 liked answer"); Assert.AreEqual(0, nextAnswer.LikesCount, "0 user liked next answer"); Assert.AreEqual(0, nextAnswer.DislikesCount, "0 users disliked next answer"); Assert.IsFalse(nextAnswer.UserLiked.HasValue, "user2 did not like next answer"); var modelForUser3 = service.GetQuestionsForLaw(law.LawID, user3.Id); question = modelForUser3.Questions.Where(x => x.Id == questionID).First(); answer = question.Representatives.Where(x => x.ID == repID).First().Answer; Assert.IsFalse(question.UserLiked.HasValue, "user3 did not like the question"); Assert.IsFalse(answer.UserLiked.Value, "user3 disliked answer"); } finally { Helpers.DeleteLaw(law); Helpers.DeleteUser(user1); Helpers.DeleteUser(user2); Helpers.DeleteUser(user3); } }