public ExamResult Pass(NewWordsService service, PairModel word, PairModel[] examList) { var translations = word.GetTranslations(); var minCount = translations.Min(t => t.Count(c => c == ' ')); if (minCount > 0 && word.PassedScore < minCount * 4) { return(ExamResult.Impossible); } Console.WriteLine("=====> " + word.OriginWord + " <====="); Console.Write("Write the translation: "); var translation = Console.ReadLine(); if (string.IsNullOrEmpty(translation)) { return(ExamResult.Retry); } if (translations.Any(t => string.Compare(translation, t, StringComparison.OrdinalIgnoreCase) == 0)) { service.RegistrateSuccess(word); return(ExamResult.Passed); } else { if (word.GetAllMeanings() .Any(t => string.Compare(translation, t, StringComparison.OrdinalIgnoreCase) == 0)) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Choosen translation is out of scope (but it is correct). Expected translations are: " + word.Translation); Console.ResetColor(); Console.WriteLine(); return(ExamResult.Impossible); } Console.WriteLine("The translation was: " + word.Translation); service.RegistrateFailure(word); return(ExamResult.Failed); } }
public async Task <ExamResult> Pass(Chat chat, NewWordsService service, PairModel word, PairModel[] examList) { var translations = word.GetTranslations(); var minCount = translations.Min(t => t.Count(c => c == ' ')); if (minCount > 0 && word.PassedScore < minCount * 4) { return(ExamResult.Impossible); } await chat.SendMessage($"=====> {word.OriginWord} <=====\r\nWrite the translation... "); var translation = await chat.WaitUserTextInput(); if (string.IsNullOrEmpty(translation)) { return(ExamResult.Retry); } if (translations.Any(t => string.Compare(translation, t, StringComparison.OrdinalIgnoreCase) == 0)) { service.RegistrateSuccess(word); return(ExamResult.Passed); } else { if (word.GetAllMeanings() .Any(t => string.Compare(translation, t, StringComparison.OrdinalIgnoreCase) == 0)) { await chat.SendMessage($"Choosen translation is out of scope (but it is correct). Expected translations are: " + word.Translation); return(ExamResult.Impossible); } await chat.SendMessage("The translation was: " + word.Translation); service.RegistrateFailure(word); return(ExamResult.Failed); } }