public Task <CategorySummaries> ListCategoriesAsync(string userId)
        {
            var list = CategoryDocuments
                       .Where(d => d.UserId == userId)
                       .Select(d => new CategorySummary {
                Id = d.Id, Name = d.Name
            })
                       .ToList();
            var categorySummaries = new CategorySummaries();

            categorySummaries.AddRange(list);
            return(Task.FromResult(categorySummaries));
        }
        public async Task <CategorySummaries> ListCategoriesAsync(string userId)
        {
            var documentUri = UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName);

            // create a query to just get the document ids
            var query = DocumentClient
                        .CreateDocumentQuery <CategoryDocument>(documentUri)
                        .Where(d => d.UserId == userId)
                        .Select(d => new CategorySummary {
                Id = d.Id, Name = d.Name
            })
                        .AsDocumentQuery();

            // iterate until we have all of the ids
            var list = new CategorySummaries();

            while (query.HasMoreResults)
            {
                var summaries = await query.ExecuteNextAsync <CategorySummary>();

                list.AddRange(summaries);
            }
            return(list);
        }