Example #1
0
        private CreateTaskItemModel GenerateTaskItem(
            string generationId,
            GenerateTaskModel generateTaskModel,
            ParsedSentModel parsedSent)
        {
            var bracketsModel = parsedSent.SentType switch
            {
                SentTypes.PresentSimpleNegative => GenerateFromPresentSimpleNegative(parsedSent),
                SentTypes.PresentSimpleQuestion => GenerateFromPresentSimpleQuestion(parsedSent),
                SentTypes.PresentSimplePositive => GenerateFromPresentSimplePositive(parsedSent),
                _ => throw new ArgumentException($"SentType not supported {parsedSent.SentType}")
            };

            if (bracketsModel == null)
            {
                return(null);
            }

            return(new CreateTaskItemModel
            {
                TaskGenerationId = generationId,
                SourceSentId = parsedSent.Id,
                GrammarPart = generateTaskModel.GrammarPart,
                SentType = parsedSent.SentType,
                TaskType = TaskType.SimpleBrackets,
                EnglishLevel = parsedSent.EnglishLevel,
                Content = bracketsModel.ToBsonDocument(),
            });
        }
Example #2
0
 public IReadOnlyList <CreateTaskItemModel> GenerateTaskItems(
     string generationId,
     GenerateTaskModel generateTaskModel,
     IReadOnlyList <ParsedSentModel> parsedSentModels)
 {
     return(parsedSentModels
            .Select(x => GenerateTaskItem(generationId, generateTaskModel, x))
            .ToList());
 }
 private Persistence.Entities.TaskGeneration CreateTaskGenerationEntity(GenerateTaskModel generateTaskModel)
 {
     return(new Persistence.Entities.TaskGeneration()
     {
         AnalyzeId = generateTaskModel.AnalyzeId,
         GrammarPart = generateTaskModel.GrammarPart,
         Name = generateTaskModel.Name,
         TaskType = generateTaskModel.TaskType,
         EnglishLevel = generateTaskModel.EnglishLevel,
         CreatedDateTime = DateTime.UtcNow,
     });
 }
        public async Task GenerateTasksAsync(GenerateTaskModel generateTaskModel)
        {
            var taskGenerationEntity = CreateTaskGenerationEntity(generateTaskModel);

            taskGenerationEntity = await _taskGenerationRepository.AddAsync(taskGenerationEntity);

            var parsedSents = await _parsedSentService.GetAllByAnalyzeAndGrammarPartAsync(
                generateTaskModel.AnalyzeId,
                generateTaskModel.GrammarPart);

            var taskGenerator = _taskItemsGeneratorFactory.GetTaskItemsGenerator(
                generateTaskModel.GrammarPart,
                generateTaskModel.TaskType);

            var taskItems = taskGenerator.GenerateTaskItems(
                taskGenerationEntity.Id,
                generateTaskModel,
                parsedSents);

            await _taskItemService.AddManyAsync(taskItems);
        }