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