예제 #1
0
		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;
		}
예제 #2
0
		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&#8805;.</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&Eacute;ROS L&Eacute;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&Eacute;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&Eacute;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();
		}