private bool DoneFetching(int count, ConnectionArguments args) { if (args.After != null || args.Before != null || args.Last != null || args.First == null) { return(false); } return(count >= args.First.Value); }
public async Task <List <T> > GetConnection <T>(ConnectionArguments args) where T : Entity { var nextUrl = new Uri($"{_apiBase}/{typeof(T).Name.ToLower()}/"); var entities = new List <T>(); var canStopEarly = args.After != null || args.Before != null || args.Last != null || args.First == null; EntityList <T> page; while (nextUrl != null && !DoneFetching(entities.Count, args)) { page = await Fetch <EntityList <T> >(nextUrl); entities.AddRange(page.Results); nextUrl = page.Next; } return(entities); }
public static FluentConnectionWrapper ApplyFluency(this Connection m, ConnectionArguments cargs) => new FluentConnectionWrapper(m, cargs);