public async Task <IReadOnlyList <TaskItemModel> > GetByIds(IReadOnlyList <string> ids)
        {
            var entities = await _taskItemRepository.FindAllAsync(x => ids.Contains(x.Id));

            var taskGenerationMap = (await _taskGenerationRepository.GetAllAsync())
                                    .ToDictionary(x => x.Id);

            return(entities
                   .Select(x => MapTaskItemModel(x, taskGenerationMap))
                   .ToList());
        }
        public async Task CreateFromItemsAsync(EnglishTaskFromItemsCreateModel createModel)
        {
            var taskItems = await _taskItemRepository
                            .FindAllAsync(x => createModel.Items.Contains(x.Id));

            var taskContent = taskItems
                              .Select(x => x.Content)
                              .ToBsonArray();

            var englishTask = new EnglishTask
            {
                GrammarPart  = createModel.GrammarPart,
                TaskType     = createModel.TaskType,
                EnglishLevel = createModel.EnglishLevel,
                Count        = taskItems.Count,
                Content      = taskContent,
            };

            await _englishTaskRepository.AddAsync(englishTask);
        }