/// <summary>
        /// Gets the list of categories for a single user.
        /// </summary>
        /// <param name="userId">The user id that owns the category.</param>
        /// <returns>A Collection of Category summaries. An instance of the <see cref="CategorySummaryCollection"/> class.</returns>
        public async Task <CategorySummaryCollection> 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 CategorySummaryCollection();

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

                list.AddRange(summaries);
            }

            return(list);
        }
Пример #2
0
        /// <summary>
        /// Gets a list of categories.
        /// </summary>
        /// <param name="userId">The user id to get the categories for.</param>
        /// <returns>Collection of category summaries.</returns>
        public Task <CategorySummaryCollection> ListCategoriesAsync(string userId)
        {
            var list = this.CategoryDocuments
                       .Where(d => d.UserId == userId)
                       .Select(d => new CategorySummary {
                Id = d.Id, Name = d.Name
            })
                       .ToList();
            var categorySummaries = new CategorySummaryCollection();

            categorySummaries.AddRange(list);
            return(Task.FromResult(categorySummaries));
        }