private bool HandleQuestionAnswer(int questionNumber) { // Retrieve user from db User userFromDb = RetrieveUserFromDb(null); QualifDataService qDal = new QualifDataService(); StdResult<AnswerChoice> updateResult = qDal.SetAnswer(userFromDb, questionNumber, (HttpContext.Items["ChosenAnswer"] as AnswerToken).Id); if (!updateResult.Result) throw new CollecteException(updateResult.Message); return true; }
public ActionResult Resultat() { ViewBag.OkMessage = ""; ViewBag.NotifState = "ok"; // TODO compute results QualifDataService qDal = new QualifDataService(); User userFromDb = RetrieveUserFromDb(null); int chancesSup = userFromDb.ChancesAmount - 1; string chancesStr = string.Format("{0} chance{1} supplémentaire{1}", chancesSup, chancesSup == 1 ? "" : "s"); ViewBag.ChancesMessage = chancesSup == 0 ? "" : "<p id='l4'>Vous avez "+ chancesStr +" de gagner un des nombreux lots SONY en jeu≥.</p>"; var quizRetrieveResult = qDal.GetUsersAnswers(userFromDb); if (quizRetrieveResult.Result) { int[][] scoreReference = { new int[]{1, 2, 3}, // question 1 scores for resp answer 1, 2 and 3 new int[]{3, 1, 2}, // question 2 answers for blabla new int[]{1, 3, 2}, new int[]{1, 3, 2}, new int[]{1, 2, 3} }; List<AnswerChoice> answers = quizRetrieveResult.ReturnObject; int totalScore = 0; answers.ForEach(choice => totalScore += scoreReference[choice.QuestionNumber - 1][choice.AnswerChosen - 1]); //TODO remplir les profils et les mettre en base if (totalScore >= 5 && totalScore < 8.5) { // profil 1: ViewBag.ResultId = "resultat-heroslegendaire"; ViewBag.LabelResult = "HÉROS LÉGENDAIRE"; ViewBag.TextResult = "Le mot « <span class='demiitalic'>SUPER</span> » n'a plus de secret pour vous. On vous a vu décrocher la lune, déplacer des montagnes, faire des miracles. Tous vos proches vous admirent et le confirment : <span class='demiitalic'>vous n'avez plus de preuve à faire</span>, vous avez votre place aux côtés des plus grands super héros… Respect !"; userFromDb.HeroicStatus = 1; ViewBag.Tag = "Page_de_remerciement_Heros_legendaire"; ViewBag.TypeHeros = "Heros Legendaire"; } else if (totalScore >= 8.3 && totalScore < 11.6) { // profil 2: ViewBag.ResultId = "resultat-antiheros"; ViewBag.LabelResult = "ANTI-HÉROS !"; ViewBag.TextResult = "C'est simple, vous dégagez un <span class='demiitalic'>charme irrésistible</span>.<br /> Une peau de banane, un pot de fleur, une gaffe… Ils seront immanquablement pour vous. Et pourtant, malgré votre propension à attirer le mauvais sort, <span class='demiitalic'>on vous aime comme vous êtes</span> : vos qualités (bien sûr, vous les multipliez aussi) mais surtout, on adore vos défauts, plus que tout."; userFromDb.HeroicStatus = 2; ViewBag.Tag = "Page_de_remerciement_Anti_heros"; ViewBag.TypeHeros = "Anti Heros"; } else { //profil 3: ViewBag.ResultId = "resultat-herosdujour"; ViewBag.LabelResult = "HÉROS DU JOUR !"; ViewBag.TextResult = "Une opportunité qui passe… <span class='demiitalic'>Et hop, vous voilà.</span> Vous avez l'intuition pour dénicher la bonne affaire, celle qui va tout faire basculer. Un coup d'éclat au bon moment, au bon endroit dont <span class='demiitalic'>vous êtes le maître</span> et qui ne passe pas inaperçu ! <span class='demiitalic'>Bravo.</span>"; userFromDb.HeroicStatus = 3; ViewBag.Tag = "Page_de_remerciement_Heros_du_jour"; ViewBag.TypeHeros = "Heros du jour"; } Session["ResultId"] = ViewBag.ResultId; Session["LabelResult"] = ViewBag.LabelResult; Session["TextResult"] = ViewBag.TextResult; userFromDb.HeroicScore = totalScore; StdResult<User> updateResult = UserDal.Update(userFromDb); } else { throw new CollecteException(quizRetrieveResult.Message); } return View(); }