public async Task <IReadOnlyDictionary <TaskType, int> > GetTaskTypeFilterOptionsAsync(EnglishLevel?level)
        {
            IReadOnlyList <TaskItem> items;

            if (level.HasValue)
            {
                items = await _taskItemRepository.FindAllAsync(x => x.EnglishLevel == level.Value);
            }
            else
            {
                items = await _taskItemRepository.GetAllAsync();
            }

            return(items
                   .ToLookup(x => x.TaskType)
                   .ToDictionary(l => l.Key, l => l.Count()));
        }