public async Task <IActionResult> PutQuestionResult([FromRoute] int id, [FromBody] QuestionResult questionResult) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != questionResult.Id) { return(BadRequest()); } _context.Entry(questionResult).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!QuestionResultExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private void m_Send_Click(Object sender, EventArgs e) { // Создание экземпляра результата ответа студента QuestionResult _result = new QuestionResult(Environment.MachineName, _question, ""); // Инициализация результата в зависимости от типа вопроса switch (materialTabControl2.SelectedIndex) { case 0: if (listAnswers.SelectedIndex > -1) { _result.Answer = listAnswers.Items[listAnswers.SelectedIndex].ToString(); m_Send.Enabled = false; } break; case 1: if (textBox1.Text != "") { _result.Answer = textBox1.Text; m_Send.Enabled = false; } break; } if (!m_Send.Enabled) { // Отправка данных преподавателю Byte[] Buffer = Encoding.UTF8.GetBytes(_result.ToString()); Program.Server.Send(Program.Config.Server, Program.Config.Port, Buffer); materialTabControl2.Enabled = false; } }
private static Highscore CreateHighscore(string username, Dictionary dictionary, int seconds) { var questionResult = new QuestionResult(); questionResult.AddAnswer(new Answer(true, DateTime.Now, TimeSpan.FromSeconds(seconds), null)); return(new Highscore(username, dictionary.Id, questionResult)); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var translations = string.Join(", ", word.TextTranslations.Shuffle().Take(3)); var variants = examList .Where(e => e.AllTranslationsAsSingleString != word.AllTranslationsAsSingleString) .Select(e => string.Join(", ", e.TextTranslations.Shuffle().Take(3))) .Shuffle() .Take(5) .Append(translations) .ToList(); var msg = QuestionMarkups.TranslateTemplate(word.Word, chat.Texts.ChooseTheTranslation); await chat.SendMarkdownMessageAsync(msg, InlineButtons.CreateVariants(variants)); var choice = await chat.TryWaitInlineIntKeyboardInput(); if (choice == null) { return(QuestionResult.RetryThisQuestion); } var answer = variants[choice.Value].Split(",") .Select(e => e.Trim()).ToList(); return(!answer.Except(word.TextTranslations).Any() ? QuestionResult.Passed(chat.Texts) : QuestionResult.Failed(chat.Texts)); }
public QuestionResult NextTip(string answer) { var editedAnswer = answer.ToLower().Replace(" ", ""); Dictionary <string, string> answerMap = new Dictionary <string, string>(); answerMap["hurra"] = "YES! Da var vi igang. I ferden mot skatten må vi finne ut av antall etasjer Risvollan blokka har."; answerMap["16"] = "Kjempe bra. Hva er navnet på skobutikken der Adam Ondra klatret verdens vanskligste rute"; answerMap["falkanger"] = "Konge, hopp i bilen, jeg lukter skatt. Da bærer turen til Utehallen, jeg trenger å vite hvem utehallen har et opplegg for, bør være mulig å finne ut av fra utsiden."; answerMap["firmaer"] = "Hurra! For å komme et skritt nærmere skatten tror jeg at jeg trenger navnet på den rosa 5+ ruta jeg klatret, nå som vi først er her."; answerMap["firma"] = "Hurra! For å komme et skritt nærmere skatten tror jeg at jeg trenger navnet på den rosa 5+ ruta jeg klatret, nå som vi først er her."; answerMap["rosa"] = "Tommel opp. For å komme oss videre går turen til Klatresenteret der de har ukas Bulder som vanligvis er veldig vanskelig, den står skrudd sammen med en annen mye enklere rute som heter Ukas..."; answerMap["navnløs"] = "Tommel opp. For å komme oss videre går turen til Klatresenteret der de har ukas Bulder som vanligvis er veldig vanskelig, den står skrudd sammen med en annen mye enklere rute som heter Ukas..."; answerMap["pudding"] = "Fantastisk! Da nærmer turen seg slutten og den gjemte skatten. Som alle gode avslutninger ender den på IKEA, For å komme oss i mål trenger vi å vite hvilke avdeling som er nummer 5 på oversiktskartet"; answerMap["kjøkken"] = "Gratulerer skatten er din, den gjemmer seg der vi startet. Du må finne den gjemte skatten der jeg gravde den ned i undergrunnen på boden."; var qRes = new QuestionResult(); qRes.Answer = answer; if (answerMap.ContainsKey(editedAnswer)) { qRes.Hint = answerMap[editedAnswer]; qRes.CorrectAnswer = true; } else { qRes.Hint = "Å nei, jeg tror svaret ditt var galt, skriv inn forrige korrekte svar for å få tilbake hintet"; qRes.CorrectAnswer = false; } return(qRes); }
//method for when a question is submitted public void SubmitQuestionAnswer(int idAnswer, int idParticipant, int idQuestionList, string startTime) { QuestionResult questionResult = new QuestionResult() { QuestionList_idQuestionList = idQuestionList, AnswerOption_idAnswer = idAnswer, Participant_idParticipant = idParticipant, startTime = DateTime.ParseExact(startTime, "yyyy:MM:dd HH:mm:ss:fff", null), endTime = DateTime.Now, attempt = TempData["attempt"] != null ? (int)TempData["attempt"] : 1 }; TempData.Keep(); db.QuestionResults.Add(questionResult); db.SaveChanges(); questionResult = db.QuestionResults.Include(x => x.AnswerOption).Include(x => x.Participant).FirstOrDefault(x => x.idQuestionResult == questionResult.idQuestionResult); int idQuestion = questionResult.AnswerOption.Question_idQuestion; string fullName = questionResult.Participant.fullName; var hubContext = GlobalHost.ConnectionManager.GetHubContext <LiveHub>(); hubContext.Clients.Group("Members").SubmitedAnswer(new SubmitedDto { IdAnswer = idAnswer, IdQuestionList = idQuestionList, IdQuestion = idQuestion, IdParticipant = idParticipant, FullName = fullName }); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var originTranslation = word.RuTranslations.ToList().GetRandomItemOrNull(); var variants = examList.SelectMany(e => e.TextTranslations) .Where(e => !word.TextTranslations.Contains(e)) .Distinct() .Shuffle() .Take(5) .Append(originTranslation.Word) .Shuffle() .ToList(); var msg = QuestionMarkups.TranslateTemplate(word.Word, chat.Texts.ChooseTheTranslation); await chat.SendMarkdownMessageAsync(msg, InlineButtons.CreateVariants(variants)); var choice = await chat.TryWaitInlineIntKeyboardInput(); if (choice == null) { return(QuestionResult.RetryThisQuestion); } var selected = variants[choice.Value]; return(word.TextTranslations.Any(t => t.AreEqualIgnoreCase(selected)) ? QuestionResult.Passed(chat.Texts) : QuestionResult.Failed(chat.Texts)); }
public void ShouldReturnCorrectScore(double seconds, int numberOfCorrectAnswers, int numberOfIncorrectAnswers, int expectedScore) { var questionResult = new QuestionResult(); for (var i = 0; i < numberOfCorrectAnswers; i++) { questionResult.AddAnswer(new Answer(true, DateTime.Now, TimeSpan.FromSeconds(seconds / (numberOfCorrectAnswers + numberOfIncorrectAnswers)), null)); } for (var i = 0; i < numberOfIncorrectAnswers; i++) { questionResult.AddAnswer(new Answer(false, DateTime.Now, TimeSpan.FromSeconds(seconds / (numberOfCorrectAnswers + numberOfIncorrectAnswers)), null)); } var score = _objectUnderTest.CalculateScore(questionResult); Assert.AreEqual(expectedScore, score); }
private async Task <QuestionResult> GetQuestionsFromAPIAsync(List <int> listOfCategoryIds) { QuestionResult questionsObject = new QuestionResult(); foreach (var categoryId in listOfCategoryIds) { //Getting 1 questing for each category from the Trivia API string url = $"https://opentdb.com/api.php?amount=1&category={categoryId}&type=multiple"; JObject json = await this.GetJsonStreamFromUrlAsync(url); json.Property("response_code").Remove(); var jsonString = json.ToString(); var question = JsonConvert.DeserializeObject <QuestionResult>(jsonString); var questionToAdd = question.Questions.First(); // Adding the correct answer to the options list as the API passed it as separate string property // It will become last element of the array but there is shuffle method to shuffle the answers // TODO: Make it work better questionToAdd.Options.Add(questionToAdd.CorrectAnswer); questionsObject.Questions.Add(questionToAdd); } return(questionsObject); }
public async Task <QuestionResult> SaveQuestionResult(QuestionResult e) { db.QuestionResult.Add(e); await db.SaveChangesAsync(); return(e); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Score,Answered,CorrectAnswer,QuestionId,UserId")] QuestionResult questionResult) { if (id != questionResult.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(questionResult); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!QuestionResultExists(questionResult.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["QuestionId"] = new SelectList(_context.Questions, "Id", "Id", questionResult.QuestionId); ViewData["UserId"] = new SelectList(_context.Users, "Id", "Id", questionResult.UserId); return(View(questionResult)); }
private static Highscore CreateHighscore(Dictionary dictionary1) { var questionResult = new QuestionResult(); questionResult.AddAnswer(new Answer(true, DateTime.Now, TimeSpan.FromSeconds(1), dictionary1.Entries[0])); return(new Highscore("Frank", dictionary1.Id, questionResult)); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var(phrase, translation) = word.GetExamplesThatLoadedAndFits().GetRandomItemOrNull(); if (phrase == null) { return(QuestionResult.Impossible); } var(enPhrase, ruPhrase) = phrase.Deconstruct(); var allWordsWithPhraseOfSimilarTranslate = examList .SelectMany(e => e.Examples) .Where(p => p.TranslatedPhrase.AreEqualIgnoreCase(ruPhrase)) .Select(e => e.OriginWord) .ToList(); var enReplaced = enPhrase.Replace(phrase.OriginWord, "\\.\\.\\."); if (enReplaced == enPhrase) { return(QuestionResult.Impossible); } await chat.SendMarkdownMessageAsync( QuestionMarkups.TranslatesAsTemplate( ruPhrase, chat.Texts.translatesAs, enReplaced, chat.Texts.EnterMissingWord + ":")); var enter = await chat.WaitNonEmptyUserTextInputAsync(); if (enter.IsRussian()) { await chat.SendMessageAsync(chat.Texts.EnglishInputExpected); return(QuestionResult.RetryThisQuestion); } var(closestWord, comparation) = allWordsWithPhraseOfSimilarTranslate.GetClosestTo(enter.Trim()); if (comparation == StringsCompareResult.Equal) { return(QuestionResult.Passed(chat.Texts)); } if (enter.Contains(word.Word, StringComparison.InvariantCultureIgnoreCase) && enPhrase.Contains(enter)) { //if user enters whole world (as it is in phrase) - it is ok return(QuestionResult.Passed(chat.Texts)); } if (comparation == StringsCompareResult.SmallMistakes) { await chat.SendMessageAsync(chat.Texts.TypoAlmostRight); return(QuestionResult.RetryThisQuestion); } return(QuestionResult.Failed( $"{chat.Texts.FailedOriginExampleWasMarkdown}\r\n*\"{phrase.OriginPhrase}\"*", chat.Texts)); }
public Task <QuestionResult> GetByIdAsync(int id) { return(Task.Run(() => { QuestionResult book = db.QuestionResults.Find(id); return book; })); }
public ActionResult Corrigir(ImageCandidate ic) { AccessControl ac = new AccessControl(); if (ac.GetUser("Administrator") == null) { return(RedirectToAction("Index", "Login")); } if (ModelState.IsValid) { QuestionResult e = new QuestionResult(); e.CandidateId = ic.CandidateId; e.QuestionId = ic.QuestiontId; e.Grade = Convert.ToDecimal(Request.Form["Grade"].ToString()); db.QuestionResult.Add(e); //db.SaveChanges(); ic.InUse = false; db.Entry(ic).State = EntityState.Modified; db.SaveChanges(); IEnumerable <Grade> dbList = GetGrade(ic.QuestiontId); ViewBag.Grade = new SelectList(dbList, "Id", "Grade1"); int QuestionId = ic.QuestiontId; return(ShowView(QuestionId, true)); } ModelState.AddModelError("error", "Erro inesperado. Tente novamente"); return(RedirectToAction("Index")); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var originTranslation = word.RuTranslations.GetRandomItemOrNull(); if (string.IsNullOrWhiteSpace(originTranslation.Transcription) || originTranslation.Transcription != "") { return(QuestionResult.Impossible); } var variants = examList.Where(e => e.RuTranslations.All(t => t.Transcription != originTranslation.Transcription)) .SelectMany(e => e.TextTranslations) .Take(5) .Append(originTranslation.Word) .Shuffle() .ToList(); var msg = QuestionMarkups.TranscriptionTemplate(originTranslation.Transcription, chat.Texts.ChooseWhichWordHasThisTranscription); await chat.SendMarkdownMessageAsync(msg, InlineButtons.CreateVariants(variants)); var choice = await chat.TryWaitInlineIntKeyboardInput(); if (choice == null) { return(QuestionResult.RetryThisQuestion); } if (word.TextTranslations.Contains(variants[choice.Value])) { return(QuestionResult.Passed(chat.Texts)); } return(QuestionResult.Failed(chat.Texts)); }
public Task <QuestionResult> ShowMessageBox(string header, string content) { var topActivity = Mvx.Resolve <IMvxAndroidCurrentTopActivity>().Activity; _isLocked = true; var task = new Task <QuestionResult>(WaitForResult); task.Start(); var builder = new AlertDialog.Builder(topActivity); builder.SetTitle(header); builder.SetMessage(content); builder.SetCancelable(true); builder.SetNegativeButton(LocalizationResources.Cancel, delegate { _result = QuestionResult.Cancel; _isLocked = false; }); builder.SetPositiveButton(LocalizationResources.Ok, delegate { _result = QuestionResult.Ok; _isLocked = false; }); builder.Show(); return(task); }
public ActionResult DeleteConfirmed(int id) { QuestionResult e = db.QuestionResult.Find(id); db.QuestionResult.Remove(e); db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public void Initialize(List <DictionaryEntry> dictionaryEntries) { _dictionaryEntryPicker.Initialize(dictionaryEntries); _questionResult = new QuestionResult(); Answer = string.Empty; IsInAnswerMode = true; GetNextEntry(); }
public void Delete(QuestionResult entity) { if (entity != null) { db.Entry(entity).State = EntityState.Deleted; db.SaveChanges(); } }
public void AddQuestionResult(QuestionResult questionResult) { _chineseCharacterTrainerService.AddQuestionResult(questionResult); foreach (var answer in questionResult.Answers) { _chineseCharacterTrainerService.AddAnswer(answer); } }
public void ShouldSaveChangesWhenAddingQuestionResult() { var questionResult = new QuestionResult(); _objectUnderTest.AddQuestionResult(questionResult); _chineseTrainerContextMock.Verify(p => p.SaveChanges()); }
public void ShouldAddQuestionResultToContextWhenAdding() { var questionResult = new QuestionResult(); _objectUnderTest.AddQuestionResult(questionResult); _chineseTrainerContextMock.Verify(p => p.Add(questionResult)); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var msg = QuestionMarkups.TranslateTemplate(word.AllTranslationsAsSingleString, chat.Texts.DoYouKnowTranslationMarkdown); var id = Rand.Next(); await chat.SendMarkdownMessageAsync(msg, new InlineKeyboardButton() { CallbackData = id.ToString(), Text = chat.Texts.ShowTheTranslationButton }); while (true) { var update = await chat.WaitUserInputAsync(); if (update.CallbackQuery?.Data == id.ToString()) { break; } var input = update.Message?.Text; if (!string.IsNullOrWhiteSpace(input)) { if (word.Word.AreEqualIgnoreCase(input)) { return(QuestionResult.Passed(chat.Texts)); } await chat.SendMessageAsync(chat.Texts.ItIsNotRightTryAgain); } } await chat.SendMarkdownMessageAsync($"_{chat.Texts.TranslationIs} _\r\n" + $"*\"{word.Word}\"*\r\n\r\n" + $"{chat.Texts.DidYouGuess}", new[] { new[] { new InlineKeyboardButton { CallbackData = "1", Text = chat.Texts.YesButton }, new InlineKeyboardButton { CallbackData = "0", Text = chat.Texts.NoButton } } } ); var choice = await chat.WaitInlineIntKeyboardInput(); return(choice == 1 ? QuestionResult.Passed( chat.Texts.PassedOpenIHopeYouWereHonestMarkdown, chat.Texts.PassedHideousWell2) : QuestionResult.Failed( chat.Texts.FailedOpenButYouWereHonestMarkdown, chat.Texts.FailedHideousHonestyIsGoldMarkdown)); }
public async Task <QuestionResult> Pass( ChatRoom chat, UserWordModel word, UserWordModel[] examList) { var(phrase, translation) = word.GetExamplesThatLoadedAndFits().GetRandomItemOrNull(); if (phrase == null) { return(QuestionResult.Impossible); } var(enPhrase, ruPhrase) = phrase.Deconstruct(); var replacedRuPhrase = ruPhrase.Replace(phrase.TranslatedWord, "\\.\\.\\."); if (replacedRuPhrase == ruPhrase) { return(QuestionResult.Impossible); } await chat.SendMarkdownMessageAsync( QuestionMarkups.TranslatesAsTemplate( enPhrase, chat.Texts.translatesAs, replacedRuPhrase, chat.Texts.EnterMissingWord + ":")); var enter = await chat.WaitNonEmptyUserTextInputAsync(); if (!enter.IsRussian()) { await chat.SendMessageAsync(chat.Texts.RussianInputExpected); return(QuestionResult.RetryThisQuestion); } var comparation = translation.Word.CheckCloseness(enter.Trim()); if (comparation == StringsCompareResult.Equal) { return(QuestionResult.Passed(chat.Texts)); } //if user enters whole word in phrase- it is ok! if (enter.Contains(translation.Word, StringComparison.InvariantCultureIgnoreCase) && phrase.OriginPhrase.Contains(enter, StringComparison.InvariantCultureIgnoreCase)) { return(QuestionResult.Passed(chat.Texts)); } if (comparation == StringsCompareResult.SmallMistakes) { await chat.SendMessageAsync(chat.Texts.RetryAlmostRightWithTypo); return(QuestionResult.RetryThisQuestion); } return(QuestionResult.Failed($"{chat.Texts.FailedOriginExampleWas2} *\"{phrase.TranslatedPhrase}\"*", chat.Texts)); }
public async Task <QuestionResult> Pass(ChatRoom chat, UserWordModel word, UserWordModel[] examList) { if (!word.HasAnyExamples) { return(QuestionResult.Impossible); } var targetPhrase = word.GetRandomExample(); string shuffled; while (true) { var wordsInExample = targetPhrase.SplitWordsOfPhrase; if (wordsInExample.Length < 2) { return(QuestionResult.Impossible); } shuffled = string.Join(" ", wordsInExample.Shuffle()); if (shuffled != targetPhrase.OriginPhrase) { break; } } await chat.SendMarkdownMessageAsync( QuestionMarkups.FreeTemplate($"{chat.Texts.WordsInPhraseAreShuffledWriteThemInOrderMarkdown}:\r\n*\"{shuffled}\"*")); var entry = await chat.WaitUserTextInputAsync(); if (entry.IsRussian()) { await chat.SendMessageAsync(chat.Texts.EnglishInputExpected); return(QuestionResult.RetryThisQuestion); } var closeness = targetPhrase.OriginPhrase.CheckCloseness(entry.Trim()); if (closeness == StringsCompareResult.Equal) { return(QuestionResult.Passed(chat.Texts)); } if (closeness == StringsCompareResult.BigMistakes) { await chat.SendMessageAsync(chat.Texts.RetryAlmostRightWithTypo); return(QuestionResult.RetryThisQuestion); } return(QuestionResult.Failed( $"{chat.Texts.FailedOriginExampleWas2Markdown}:\r\n*\"{targetPhrase.OriginPhrase}\"*", chat.Texts)); }
void Set(int Id, string Text, string Category, string Answer, QuestionResult Result, QuestionType Type) { this.Id = Id; this.Text = Text; this.Category = Category; this.Answer = Answer; this.Result = Result; this.Type = Type; }
private void RaiseQuestionsFinished(QuestionResult result) { var handler = QuestionsFinished; if (handler != null) { handler(result); } }
public void ShouldInitializeSummaryViewModelWhenQuestionsAreFinished() { _menuVMMock.Setup(p => p.SelectedDictionary).Returns(new Dictionary("Test", null)); var questionResult = new QuestionResult(1, 2, TimeSpan.FromSeconds(1), 100); _questionVMMock.Raise(p => p.QuestionsFinished += null, questionResult); _summaryVMMock.Verify(p => p.Initialize(_menuVMMock.Object.SelectedDictionary, questionResult), Times.Once()); }
public void ShouldRaiseEventWithNumberOfIncorrectQuestions() { QuestionResult questionResult = null; _objectUnderTest.QuestionsFinished += result => { questionResult = result; }; AnswerAllQuestions(); Assert.AreEqual(2, questionResult.NumberOfIncorrectAnswers); }
/// <summary> /// Constructor. /// </summary> public ScoredQuestionResult(QuestionResult result, double score) { Result = result; Score = score; }
private void OnQuestionBoxButtonClick(QuestionResult result) { Hide(result); }