public async Task <IHttpActionResult> GetSynonymTask(int id) { var suite = await _service.GetWithNotStudiedWordsAsync(id); if (suite.OwnerId == UserId) { if (suite.QuizStartTime == null) { suite.QuizStartTime = new DateTime(); } if (((DateTime)suite.QuizStartTime).AddDays(1) < DateTime.Now) { TrainingSynonymTask task = new TrainingSynonymTask(); task.WordSuiteId = suite.Id; task.WordSuiteName = suite.Name; task.QuizResponseTime = suite.QuizResponseTime; task.Synonyms = new List <List <WordValueModel> >(); foreach (var wordProgress in suite.WordProgresses) { var synonyms = await _wordTranslationService.GetAllWordSynonymsById( wordProgress.WordTranslation.OriginalWordId); if (synonyms.Count != 0) { task.Synonyms.Add(synonyms); } } return(Ok(task)); } return(BadRequest(MessagesContainer.OneQuizPerDay)); } return(BadRequest(MessagesContainer.NotYourQuiz)); }
public async Task <IHttpActionResult> CheckSynonymTask(TrainingSynonymTask task) { if (task == null) { return(BadRequest("Invalid parameter")); } // Only for demo //await _service.SetTimeAsync(task.WordSuiteId); if (task.Answer.Count == 0 || task.Synonyms.Count == 0 || task.Answer.Count != task.Synonyms.Count) { return(BadRequest("Invalid model")); } task.Result = new List <bool>(); for (int i = 0; i < task.Synonyms.Count; i++) { if (task.Synonyms[i].Count == 0) { return(BadRequest("Invalid model")); } var synonyms = await _wordTranslationService.GetAllWordSynonymsById(task.Synonyms[i][0].Id ?? default(int)); var result = synonyms.Exists(x => x.Value.ToLower() == task.Answer[i].ToLower()); task.Result.Add(result); if (result) { _progressService.IncrementProgressOfOriginalWord(task.WordSuiteId, task.Answer[i]); } } return(Ok(task)); }