public Task <IEnumerable <TodoItem> > TodoItemsQueryAsync(TodoItemsSearchArgs searchArgs)
        {
            var _ = searchArgs != null ? "" : throw new ArgumentNullException();

            var items = m_dataRepo.TodoItems.FindAll(i =>
                                                     (searchArgs.CategoryId == null ||
                                                      i.CategorySet.Any(c => searchArgs.CategoryId == c.TodoItemCategoryId))

                                                     && (searchArgs.IsInUserFavorites == null || i.IsUserFavorite == searchArgs.IsInUserFavorites)

                                                     && (searchArgs.StringFieldsContains == null || i.Title.Contains(searchArgs.StringFieldsContains) ||
                                                         i.Description.Contains(searchArgs.StringFieldsContains))
                                                     );

            return(Task.FromResult((IEnumerable <TodoItem>)items));
        }
        public async Task <IEnumerable <TodoItem> > TodoItemsQueryAsync(TodoItemsSearchArgs searchArgs)
        {
            var _ = searchArgs != null ? "" : throw new ArgumentNullException();

            var results = await m_dbContext.TodoItems.Where(i =>
                                                            (searchArgs.IsInUserFavorites == null || i.IsUserFavorite == searchArgs.IsInUserFavorites)

                                                            && (searchArgs.StringFieldsContains == null || i.Title.Contains(searchArgs.StringFieldsContains) ||
                                                                i.Description.Contains(searchArgs.StringFieldsContains))
                                                            ).ToListAsync();

            if (searchArgs.CategoryId != null)
            {
                results = results.Where(i =>
                                        i.CategorySet.Any(c => c.TodoItemCategoryId == searchArgs.CategoryId)).ToList();
            }

            return(results);
        }