/// <summary> /// Gets all items in the collection as an asynchronous operation. /// </summary> /// <returns>Task<IEnumerable<TCollection>>.</returns> public async Task <IEnumerable <TCollection> > AllItemsAsync() { CollectionResource <T, TCollection> collection = this; List <TCollection> list = collection.Items.ToList(); if (EveCrest.EnableAutomaticPaging) { while (collection.Next != null) { collection = await EveCrest.LoadAsync(collection.Next).ConfigureAwait(false); list.AddRange(collection.Items); } } return(list); }
/// <summary> /// Queries a collection resource for a single item, async. /// </summary> /// <typeparam name="TOut">The type of the t out.</typeparam> /// <param name="objFunc">The object function.</param> /// <returns>Task<TOut[]>.</returns> public async Task <TOut> QueryAsync <TOut>(Func <IEnumerable <TCollection>, ILinkedEntity <TOut> > objFunc) where TOut : class, ICrestResource <TOut> { CollectionResource <T, TCollection> collection = this; List <TCollection> list = collection.Items.ToList(); if (EveCrest.EnableAutomaticPaging) { while (collection.Next != null) { collection = await EveCrest.LoadAsync(collection.Next).ConfigureAwait(false); list.AddRange(collection.Items); } } ILinkedEntity <TOut> item = objFunc.Invoke(list); return(await EveCrest.LoadAsync(item).ConfigureAwait(false)); }