Esempio n. 1
0
        public static async Task <AssetEntities> GetAllAssetsAsync(this SquidexAssetClient assetClient, int batchSize = 200)
        {
            var query = new ContentQuery {
                Top = batchSize, Skip = 0
            };

            var entities = new AssetEntities();

            do
            {
                var getResult = await assetClient.GetAssetsAsync(query);

                entities.Total = getResult.Total;
                entities.Items.AddRange(getResult.Items);

                query.Skip = entities.Items.Count;
            }while (query.Skip < entities.Total);

            return(entities);
        }
Esempio n. 2
0
        public static async Task <SquidexEntities <TEntity, TData> > GetAllAsync <TEntity, TData>(this SquidexClient <TEntity, TData> client, int batchSize = 200)
            where TEntity : SquidexEntityBase <TData> where TData : class, new()
        {
            var query = new ContentQuery {
                Top = batchSize
            };

            var entities = new SquidexEntities <TEntity, TData>();

            do
            {
                var getResult = await client.GetAsync(query);

                entities.Total = getResult.Total;
                entities.Items.AddRange(getResult.Items);

                query.Skip = entities.Items.Count;
            }while (query.Skip < entities.Total);

            return(entities);
        }
Esempio n. 3
0
        /// <inheritdoc/>
        public async Task GetAllAsync(Func <TEntity, Task> callback, int batchSize = 200, QueryContext?context = null,
                                      CancellationToken ct = default)
        {
            Guard.Between(batchSize, 10, 10_000, nameof(batchSize));
            Guard.NotNull(callback, nameof(callback));

            var query = new ContentQuery {
                Top = batchSize
            };

            context = (context ?? QueryContext.Default).WithoutTotal();

            var added = new HashSet <string>();

            do
            {
                var isAnyAdded = false;

                var getResult = await GetAsync(query, context, ct);

                foreach (var item in getResult.Items)
                {
                    if (added.Add(item.Id))
                    {
                        await callback(item);

                        isAnyAdded = true;
                    }
                }

                if (!isAnyAdded)
                {
                    break;
                }

                query.Skip = added.Count;
            }while (!ct.IsCancellationRequested);
        }
Esempio n. 4
0
        /// <inheritdoc/>
        public Task <ContentsResult <TEntity, TData> > GetReferencesAsync(TEntity entity, ContentQuery query = null, QueryContext context = null, CancellationToken ct = default)
        {
            Guard.NotNull(entity, nameof(entity));

            return(GetReferencesAsync(entity.Id, query, context, ct));
        }
Esempio n. 5
0
        /// <inheritdoc/>
        public Task <ContentsResult <TEntity, TData> > GetReferencingAsync(string id, ContentQuery query = null, QueryContext context = null, CancellationToken ct = default)
        {
            Guard.NotNullOrEmpty(id, nameof(id));

            var q = query?.ToQuery(true) ?? string.Empty;

            return(RequestJsonAsync <ContentsResult <TEntity, TData> >(HttpMethod.Get, BuildSchemaUrl($"{id}/referencing{q}", true, context), null, context, ct));
        }
Esempio n. 6
0
        /// <inheritdoc/>
        public Task <ContentsResult <TEntity, TData> > GetAsync(ContentQuery query = null, QueryContext context = null, CancellationToken ct = default)
        {
            var q = query?.ToQuery(true) ?? string.Empty;

            return(RequestJsonAsync <ContentsResult <TEntity, TData> >(HttpMethod.Get, BuildSchemaUrl(q, true, context), null, context, ct));
        }
        public Task <AssetEntities> GetAssetsAsync(ContentQuery query = null)
        {
            var queryString = query?.ToQuery(false) ?? string.Empty;

            return(RequestJsonAsync <AssetEntities>(HttpMethod.Get, BuildAppAssetsUrl(queryString)));
        }