Пример #1
0
        /// <summary>
        /// Gets all items in the collection as an asynchronous operation.
        /// </summary>
        /// <returns>Task&lt;IEnumerable&lt;TCollection&gt;&gt;.</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);
        }
Пример #2
0
        /// <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&lt;TOut[]&gt;.</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));
        }