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