/// <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); }
/// <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)); }