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));
        }