public Task <IEnumerable <TodoItemCategory> > TodoItemCategoriesQueryAsync(TodoItemCategoriesSearchArgs searchArgs)
        {
            var _ = searchArgs != null ? "" : throw new ArgumentNullException();

            var categories = m_dataRepo.TodoItemCategories.FindAll(c =>
                                                                   (searchArgs.TodoItemId == null ||
                                                                    c.TodoItemSet.Any(i => searchArgs.TodoItemId == i.TodoItemId))

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

            return(Task.FromResult((IEnumerable <TodoItemCategory>)categories));
        }
        TodoItemCategoriesQueryAsync(TodoItemCategoriesSearchArgs searchArgs)
        {
            var _ = searchArgs != null ? "" : throw new ArgumentNullException();

            var results = await m_dbContext.TodoItemCategories.Where(c =>
                                                                     (searchArgs.StringFieldsContains == null || c.Title.Contains(searchArgs.StringFieldsContains) ||
                                                                      c.Description.Contains(searchArgs.StringFieldsContains))
                                                                     ).ToListAsync();

            if (searchArgs.TodoItemId != null)
            {
                results = results.Where(c => c.TodoItemSet.Any(
                                            i => searchArgs.TodoItemId == i.TodoItemId)).ToList();
            }

            return(results);
        }