public void ResultAnotherConstructorTest() { //Arrange int expectedScore = 1; Exam exam = new Exam("SomeExam", 1, 3, 1); Student student = new Student("Ivan", "Ivanov", "Studak", "Zachotka", "TEST", "ivanov"); Question question = new Question("Some question", "Correct answer", new List <String> { "Answer1", "Answer2" }); AnsweredQuestion answeredQuestion = new AnsweredQuestion(question, "Correct answer"); List <AnsweredQuestion> answeredQuestions = new List <AnsweredQuestion>(); //Act Result result = new Result(student, expectedScore, answeredQuestions); //Assert Assert.AreEqual(answeredQuestion.correctAnswer, answeredQuestion.actualAnswer); Assert.AreEqual(expectedScore, result.score); }
public ActionResult Create(ScreeningTest screeningtest) { if (ModelState.IsValid) { db.ScreeningTests.Add(screeningtest); //create a new record of questions answered by the user AnsweredQuestion question = new AnsweredQuestion { username = User.Identity.Name.ToString(), QuestionId = screeningtest.id, DateCreated = DateTime.Now }; db.AnsweredQuestions.Add(question); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(screeningtest)); }
public void ResultAnotherConstructorTest() { //Arrange int expectedId = 1; string expectedQuestion = "Question"; string expectedAnswer = "Correct answer"; List <string> falseAnswers = new List <String> { "Answer1", "Answer2" }; Question question = new Question(expectedId, expectedQuestion, expectedAnswer, falseAnswers); //Act AnsweredQuestion answeredQuestion = new AnsweredQuestion(question, expectedAnswer); //Assert Assert.AreEqual(expectedQuestion, answeredQuestion.question); Assert.AreEqual(expectedAnswer, answeredQuestion.correctAnswer); Assert.AreEqual(expectedAnswer, answeredQuestion.actualAnswer); Assert.AreEqual(falseAnswers[0], answeredQuestion.falseAnswers[0]); Assert.AreEqual(falseAnswers[1], answeredQuestion.falseAnswers[1]); }
private QuestionModel CreateHeuristicModelWithAnswers(AnsweredQuestion qa, List <Answer> answers) { var hwa = new QuestionModel() { Id = qa.Id, HeuristicText = qa.HeuristicText, HeuristicTitle = qa.HeuristicTitle, Answers = answers.Where(x => x.QuestionAnswerId == qa.Id).Select(a => new AnswerModel() { Id = a.Id, Description = a.Description, Level = a.Level, Images = a.Images.Select(x => CreateImageModel(x)).ToList(), Location = a.Location, Recommendation = a.Recommendation, Answered = a.Answered }).ToList() }; return(hwa); }
private void CountDown() { if (_totalSeconds.TotalSeconds == 0) { //do something after hitting 0, in this example it just stops/resets the timer StopTimerCommand(); var answeredQuestion = new AnsweredQuestion() { Question = CurrentQuestion.Question, CorrectAnswer = CurrentQuestion.CorrectAnswer, IsCorrect = false, UserAnswer = string.Empty }; SaveTestResult(answeredQuestion); ChooseNewQuestion(); } else { TotalSeconds = _totalSeconds.Subtract(new TimeSpan(0, 0, 0, 1)); } }
public async Task <ProcessResult> UpdateRankingAfterUserAnswerAsync(AnsweredQuestion answeredQuestion) { var question = await _questionRepository.FindAsync(answeredQuestion.QuestionId); var answer = await _answerRepository.FindAsync(answeredQuestion.AnswerId); if (!await _questionService.DoesAnswerBelongToQuestionAsync(answeredQuestion.AnswerId, answeredQuestion.QuestionId, answeredQuestion.TrackId)) { return(new ProcessResult { Message = "A resposta não é uma das respostas possíveis para a questão.", Result = false }); } bool didUserCompleteTrack = await _questionService.HasUserFinishedTrackAsync(answeredQuestion.UserId, question.TrackId); if (answer.IsAnswerCorrect || didUserCompleteTrack) { var trackRanking = (await _trackRankingRepository .FindAsync(tr => tr.TrackId == question.TrackId && tr.UserId == answeredQuestion.UserId)) .FirstOrDefault(); if (answer.IsAnswerCorrect) { trackRanking.Points += (int)question.QuestionLevel; } if (didUserCompleteTrack) { trackRanking.CompletedTime = DateTime.UtcNow - trackRanking.StartedAtUtc; } _trackRankingRepository.Update(trackRanking); await _unitOfWork.CommitAsync(); } return(new ProcessResult { Result = true }); }
/// <summary> /// Функция считывает тайтл варианта ответа, который был отмечен, и записывает его в новый объект - /// отвеченный вопрос, добавляя к массиву отвеченных /// </summary> private void CheckQuestion() { if (_currentQuestion == null) { return; } var answer = new AnsweredQuestion { AskQuestion = _currentQuestion.AskQuestion, CorrectAnswer = _currentQuestion.CorrectAnswer }; //------------------------ foreach (var rb in _radioButtonsList) { var tb = (TextBlock)rb.Content; if (rb.IsChecked != null && rb.IsChecked.Value) { answer.ChosenAnswer = tb.Text; } } answer.IsItCorrect = answer.ChosenAnswer == answer.CorrectAnswer; _answered.Add(answer); }
protected void btnSave_clicked(object sender, System.EventArgs e) { List <AnsweredQuestion> ansLst = new List <AnsweredQuestion>(); foreach (RepeaterItem item in repSurvey.Items) { Panel pnl = item.FindControl("pnlAnswer") as Panel; CheckBoxList chkLst = item.FindControl("chkLstAnswer") as CheckBoxList; RadioButtonList rdoLst = item.FindControl("rdoLstAnswer") as RadioButtonList; Repeater rep = item.FindControl("rep") as Repeater; string questionType = pnl.Attributes["QuestionType"].ToString(); int qid = Int32.Parse(pnl.Attributes["QuestionID"].ToString()); List <int> ansIDLst = new List <int>(); if (questionType.ToLower() == "RadioButton".ToLower()) { foreach (ListItem li in rdoLst.Items) { if (li.Selected) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(li.Value); ansLst.Add(ansQ); } } } else if (questionType.ToLower() == "CheckBox".ToLower()) { foreach (ListItem li in chkLst.Items) { if (li.Selected) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(li.Value); ansLst.Add(ansQ); } } } else { foreach (RepeaterItem repItem in rep.Items) { DropDownList dd = repItem.FindControl("ddRating") as DropDownList; if (dd.SelectedIndex > 0) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(dd.Attributes["AID"].ToString()); ansQ.Answer = dd.SelectedValue; ansLst.Add(ansQ); } } } } quesRepos.ClearAnswers(UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID, screenID); //clear all answers first quesRepos.Save(ansLst); //save answers }
protected void btnNext_clicked(object sender, System.EventArgs e) { if (isReadOnly) { screenID++; if (screenID == 4) { Response.Redirect("~/Default.aspx"); } else { Response.Redirect(string.Format("~/Physician/AssesSurvey.aspx?SCREENID={0}&{1}={2}", screenID.ToString(), Constants.READONLY, this.isReadOnly ? "1" : "0")); } } else { List <AnsweredQuestion> ansLst = new List <AnsweredQuestion>(); PhysicianRepository phyRepos = new PhysicianRepository(); if (Page.IsValid) { foreach (RepeaterItem item in repSurvey.Items) { Panel pnl = item.FindControl("pnlAnswer") as Panel; CheckBoxList chkLst = item.FindControl("chkLstAnswer") as CheckBoxList; RadioButtonList rdoLst = item.FindControl("rdoLstAnswer") as RadioButtonList; Repeater rep = item.FindControl("rep") as Repeater; string questionType = pnl.Attributes["QuestionType"].ToString(); int qid = Int32.Parse(pnl.Attributes["QuestionID"].ToString()); List <int> ansIDLst = new List <int>(); if (questionType.ToLower() == "RadioButton".ToLower()) { foreach (ListItem li in rdoLst.Items) { if (li.Selected) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(li.Value); ansLst.Add(ansQ); } } } else if (questionType.ToLower() == "CheckBox".ToLower()) { foreach (ListItem li in chkLst.Items) { if (li.Selected) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(li.Value); ansLst.Add(ansQ); } } } else { foreach (RepeaterItem repItem in rep.Items) { DropDownList dd = repItem.FindControl("ddRating") as DropDownList; if (dd.SelectedIndex > 0) { AnsweredQuestion ansQ = new AnsweredQuestion(); ansQ.UserID = UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID; ansQ.QID = qid; ansQ.AID = Int32.Parse(dd.Attributes["AID"].ToString()); ansQ.Answer = dd.SelectedValue; ansLst.Add(ansQ); } } } } quesRepos.ClearAnswers(UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID, screenID); //clear all answers first quesRepos.Save(ansLst); //save answers if (screenID == 3) { phyRepos.UpdateAssesmentInformation(HttpContext.Current.User.Identity.Name, 1); phyRepos.UpdateAssesmentSurveyScreenID(UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID, 4); //make it readonly UserHelper.ReloadUser(HttpContext.Current.Session); Master.LoadPortalVisibility(); Response.Redirect("~/default.aspx"); } else { screenID++; phyRepos.UpdateAssesmentSurveyScreenID(UserHelper.GetLoggedInUser(HttpContext.Current.Session).UserID, screenID); Response.Redirect(string.Format("~/Physician/AssesSurvey.aspx?SCREENID={0}&{1}={2}", screenID.ToString(), Constants.READONLY, this.isReadOnly ? "1" : "0")); } } } }
/// <summary> /// Main view model of the game. Does all the navigation and communicate with game model /// </summary> /// <param name="navigationService"></param> public GameViewModel(INavigationService navigationService) { ///create visual states visualStates = new List <string>(); visualStates.Add("Player1"); visualStates.Add("Player2"); visualStates.Add("Player3"); visualStates.Add("Player4"); VisualStateName = "Start"; //create navigation serices _navigationService = navigationService; _currentGame = new Game(); notes = new ObservableCollection <string>(); //create players players = new ObservableCollection <PlayerViewModel>(); players.Add(new PlayerViewModel(_currentGame.ActivePlayers[0])); players.Add(new PlayerViewModel(_currentGame.ActivePlayers[1])); players.Add(new PlayerViewModel(_currentGame.ActivePlayers[2])); players.Add(new PlayerViewModel(_currentGame.ActivePlayers[3])); //get all teh cards in the game allCards = GetAllCardsinGame(); ///initialize the command NextQuestion = new RelayCommand(() => { NextQuestionMethod(); }); QuestionsPageNavigate = new RelayCommand(() => { _navigationService.NavigateTo( new Uri( string.Format(ViewModelLocator.QuestionsPage), UriKind.Relative)); }); CardManipulationPageNavigate = new RelayCommand(() => { _navigationService.NavigateTo( new Uri( string.Format(ViewModelLocator.CardManipulationPage), UriKind.Relative)); }); NotesNavigatePage = new RelayCommand(() => { _navigationService.NavigateTo( new Uri( string.Format(ViewModelLocator.NotesPage), UriKind.Relative)); }); DeleteNote = new RelayCommand <int>((int selected) => { if (selected >= 0 && selected < notes.Count) { notes.RemoveAt(selected); } }); SaveNote = new RelayCommand <string>((string s) => { string g = s.Trim(); if (g != string.Empty) { notes.Add(g); _navigationService.GoBack(); } }); AddNoteNavigatePage = new RelayCommand(() => { _navigationService.NavigateTo( new Uri( string.Format(ViewModelLocator.AddNotesPage), UriKind.Relative)); }); GuessCard = new RelayCommand(GuessCardMethod); CheckInput = new RelayCommand <int>(CheckInputCmd); System.Diagnostics.Debug.WriteLine("In game constr"); if (IsInDesignMode) { sampleAq = new AnsweredQuestion(new Question(5, "On how many racks do you see three consecutive numbers? ”"), _currentGame.ActivePlayers[0], "3", 3); } RaisePropertyChanged("GetOpponent1"); }
public async Task <IHttpActionResult> Get(int?id) { var user = _db.Users.Find(User.Identity.GetUserId()); var myQuiz = await _db.Quizs.Include("QuestionsList").FirstOrDefaultAsync(d => d.Id == id); var myAnswers = await _db.Answers.Where(d => d.Student.UserName == user.UserName && d.Quiz.Id == id).ToListAsync(); var myQuestions = myAnswers.Select(answer => answer.Question).ToList(); if (myQuiz.QuestionsList.Count > myAnswers.Count) { var notFound = true; var temp = 0; while (notFound) { var random = new Random(); temp = random.Next(myQuiz.QuestionsList.Count); if (myQuestions.All(d => d.Id != myQuiz.QuestionsList[temp].Id)) { notFound = false; } } var nextQuestion = new AnsweredQuestion() { Description = myQuiz.QuestionsList[temp].Description, QuestionId = myQuiz.QuestionsList[temp].Id, QuizId = myQuiz.Id, UserName = user.UserName, TheType = myQuiz.QuestionsList[temp].Type, QuizName = myQuiz.Name, //StartTime = (myQuiz.Length * 1000000 * 60).ToString(), StartTime = DateTime.Now.AddMinutes(myQuiz.Length).Year + "/" + DateTime.Now.AddMinutes(myQuiz.Length).Month + "/" + DateTime.Now.AddMinutes(myQuiz.Length).Day + " " + (DateTime.Now.AddMinutes(myQuiz.Length).Hour + ":" + DateTime.Now.AddMinutes(myQuiz.Length).Minute), TimeLength = myQuiz.Length }; if (nextQuestion.TheType == QuestionType.Multy) { var answersList = new List <AnswerToAnswer>(); var answersString = myQuiz.QuestionsList[temp].Questions; int counter = 0; while (!String.IsNullOrEmpty(answersString)) { answersString = answersString.Trim(); answersList.Add(new AnswerToAnswer() { AnswerId = counter, Name = answersString.Substring(0, answersString.IndexOf(';')), Selected = false }); counter++; answersString = answersString.IndexOf(';') < answersString.Length + 1 ? answersString.Substring(answersString.IndexOf(';') + 1, answersString.Length - answersString.IndexOf(';') - 1) : ""; } nextQuestion.Answers = answersList; } if (nextQuestion.TheType == QuestionType.Radio) { var answersList = new List <RadioAnswer>(); var answersString = myQuiz.QuestionsList[temp].Questions; int counter = 0; while (!String.IsNullOrEmpty(answersString)) { answersString = answersString.Trim(); answersList.Add(new RadioAnswer() { Value = answersString.Substring(0, answersString.IndexOf(';')), GroupName = "questionGroup", Id = counter, Selected = false }); counter++; answersString = answersString.IndexOf(';') < answersString.Length + 1 ? answersString.Substring(answersString.IndexOf(';') + 1, answersString.Length - answersString.IndexOf(';') - 1) : ""; } nextQuestion.RadioAnswers = answersList; } if (nextQuestion.TheType == QuestionType.Value) { nextQuestion.ValueAnswer = ""; } return(this.Ok(nextQuestion)); } else { return(this.NotFound()); } }
public void Delete(AnsweredQuestion answeredquestion) { _iDAnsweredQuestion.Delete(EAnsweredQuestion(answeredquestion)); }
public AnsweredQuestion Update(AnsweredQuestion answeredquestion) { var eAnsweredQuestion = _iDAnsweredQuestion.Update(EAnsweredQuestion(answeredquestion)); return(AnsweredQuestion(eAnsweredQuestion)); }
public async Task <bool> HasUserFinishedTrackAsync(AnsweredQuestion answeredQuestion) { var trackId = (await _questionRepository.FindAsync(answeredQuestion.QuestionId))?.TrackId ?? 0; return(await HasUserFinishedTrackAsync(answeredQuestion.UserId, trackId)); }
public ActionResult ValidateAnswer(Question question) { try { var identity = (ClaimsIdentity)User.Identity; List <Claim> claims = identity.Claims.ToList(); string userEmail = claims.Where(c => c.Type == "preferred_username").First().Value; bool correct = false; string hint = string.Empty; if (question.Excercise == "Hackagram" && question.QuestionNumber == 2) { //Check for HTML and Javascript if (question.Answer.Contains("<script>") && question.Answer.Contains("</script>")) { correct = true; //Add SQL call to insert for questions answered. var checkIfExists = (from q in adminContext.AnsweredQuestions where q.excercise == question.Excercise && q.questionNumber == question.QuestionNumber && q.email == userEmail select q.email).FirstOrDefault(); if (checkIfExists == null) { var qAnswered = new AnsweredQuestion(question.Excercise, userEmail, question.QuestionNumber, question.ID); adminContext.AnsweredQuestions.Add(qAnswered); adminContext.SaveChanges(); } } } else { string answerFromDB = (from q in adminContext.Questions where q.Excercise == question.Excercise && q.QuestionNumber == question.QuestionNumber select q.Answer).First(); if (question.Answer == answerFromDB) { correct = true; //Add SQL call to insert for questions answered. var checkIfExists = (from q in adminContext.AnsweredQuestions where q.excercise == question.Excercise && q.questionNumber == question.QuestionNumber && q.email == userEmail select q.email).FirstOrDefault(); if (checkIfExists == null) { var qAnswered = new AnsweredQuestion(question.Excercise, userEmail, question.QuestionNumber, question.ID); adminContext.AnsweredQuestions.Add(qAnswered); adminContext.SaveChanges(); } } else { hint = (from q in adminContext.Questions where q.Excercise == question.Excercise && q.QuestionNumber == question.QuestionNumber select q.Hint).First(); } } if (correct) { return(Json(new Value("success", question.QuestionNumber))); } else { return(Json(new Value("failure", question.QuestionNumber, hint, question.Answer))); } } catch (Exception e) { return(Json(new Value("error", question.QuestionNumber, "Unauthenticated", question.Answer))); } }
public bool AllHasGuessed(AnsweredQuestion question, Players players) { return(question.AllHasGuessed(players)); }
public void CollectGuess(AnsweredQuestion question, Answer guess) { question.Guess(guess); }
public async Task <ActionResult> ActiveExam(AnsweredQuestion model, FormCollection formCollection) { var user = _db.Users.Find(User.Identity.GetUserId()); if (ModelState.IsValid) { //var questions = _db.Answers.Include("Question").Where(d => d.Student.UserName == user.UserName && d.Quiz.Id == model.QuizId).Select(answer => answer.Question).ToList(); //if (!questions.Any(d => d.Id == model.QuestionId)) //{ var newAnswer = new Answer() { AnswerTime = DateTime.Now, Question = _db.Questions.Find(model.QuestionId), Quiz = _db.Quizs.Find(model.QuizId), Student = _db.Users.Find(User.Identity.GetUserId()), }; if (model.Answers != null) { foreach (var answer in model.Answers.Where(answer => answer.Selected)) { newAnswer.Answers += answer.Name + ";"; } } if (model.RadioAnswers != null) { newAnswer.Answers += Request.Form["Radio"] + ";"; } if (model.ValueAnswer != null) { newAnswer.Answers = model.ValueAnswer; } newAnswer.Correctness = newAnswer.Answers == _db.Questions.Find(model.QuestionId).Answers; _db.Answers.Add(newAnswer); _db.SaveChanges(); //} } var myQuiz = await _db.Quizs.Include("QuestionsList").FirstOrDefaultAsync(d => d.Id == model.QuizId); var myAnswers = await _db.Answers.Where(d => d.Student.UserName == user.UserName && d.Quiz.Id == model.QuizId).ToListAsync(); var myQuestions = myAnswers.Select(answer => answer.Question).ToList(); if (myQuiz.QuestionsList.Count > myAnswers.Count) { var notFound = true; var temp = 0; while (notFound) { var random = new Random(); temp = random.Next(myQuiz.QuestionsList.Count); if (myQuestions.All(d => d.Id != myQuiz.QuestionsList[temp].Id)) { notFound = false; } } var question = myQuiz.QuestionsList[temp]; model.Description = question.Description; model.QuestionId = question.Id; model.QuizId = myQuiz.Id; model.UserName = user.UserName; model.TheType = question.Type; model.QuizName = myQuiz.Name; if (model.TheType == QuestionType.Multy) { var answersList = new List <AnswerToAnswer>(); var answersString = question.Questions; int counter = 0; while (!String.IsNullOrEmpty(answersString)) { answersString = answersString.Trim(); answersList.Add(new AnswerToAnswer() { AnswerId = counter, Name = answersString.Substring(0, answersString.IndexOf(';')), Selected = false }); counter++; answersString = answersString.IndexOf(';') < answersString.Length + 1 ? answersString.Substring(answersString.IndexOf(';') + 1, answersString.Length - answersString.IndexOf(';') - 1) : ""; } model.Answers = answersList; } if (model.TheType == QuestionType.Radio) { var answersList = new List <RadioAnswer>(); var answersString = question.Questions; int counter = 0; while (!String.IsNullOrEmpty(answersString)) { answersString = answersString.Trim(); answersList.Add(new RadioAnswer() { Value = answersString.Substring(0, answersString.IndexOf(';')), GroupName = "questionGroup", Id = counter, Selected = false }); counter++; answersString = answersString.IndexOf(';') < answersString.Length + 1 ? answersString.Substring(answersString.IndexOf(';') + 1, answersString.Length - answersString.IndexOf(';') - 1) : ""; } model.RadioAnswers = answersList; } if (model.TheType == QuestionType.Value) { model.ValueAnswer = ""; } return(View(model)); } else { return(RedirectToAction("ActiveExamToCheck", new { id = model.QuizId, startTime = model.StartTime })); } }
public void InsertAnsweredQuestion(AnsweredQuestion answeredQuestion) { AnsweredQuestionDAL.InsertAnsweredQuestion(answeredQuestion); }