Exemplo n.º 1
0
        private FilterDefinition <TaskItem> BuildFilter(TaskItemsFilter filter)
        {
            var filterBuilder = Builders <TaskItem> .Filter;
            var itemsFilter   = filterBuilder.Empty;

            if (filter == null)
            {
                return(itemsFilter);
            }

            if (!filter.GrammarPart.IsNullOrEmpty())
            {
                itemsFilter &= filterBuilder.In(x => x.GrammarPart, filter.GrammarPart);
            }

            if (!filter.TaskType.IsNullOrEmpty())
            {
                itemsFilter &= filterBuilder.In(x => x.TaskType, filter.TaskType);
            }

            if (!filter.SentType.IsNullOrEmpty())
            {
                itemsFilter &= filterBuilder.In(x => x.SentType, filter.SentType);
            }

            if (!filter.EnglishLevel.IsNullOrEmpty())
            {
                itemsFilter &= filterBuilder.In(x => x.EnglishLevel, filter.EnglishLevel);
            }

            return(itemsFilter);
        }
Exemplo n.º 2
0
        public async Task <IReadOnlyList <TaskItem> > FindAllByFilters(TaskItemsFilter filter)
        {
            var itemsFilter = BuildFilter(filter);

            return(await _collection.Find(itemsFilter).ToListAsync());
        }