public static async Task <IEnumerable <TSource> > ByPredicateAsync <TSource>(this IReadOnlyQueryableSetBase <TSource> set, Func <TSource, bool> predicate) { var list = new List <TSource>(); var page = await set.OfType <TSource>().ExecuteAsync(); while (null != page) { foreach (var item in from x in page.CurrentPage where predicate(x) select x) { list.Add(item); } page = await page.GetNextPageAsync(); } return(list); }
public static async Task <IEnumerable <IGroup> > ByDisplayNamesAsync(this IReadOnlyQueryableSetBase <IGroup> groups, params string[] displayNames) { var result = await groups.ByPredicateAsync((g) => displayNames.Contains(g.DisplayName)).ConfigureAwait(false); return(result); }
public static IEnumerable <TSource> ByPredicate <TSource>(this IReadOnlyQueryableSetBase <TSource> set, Func <TSource, bool> predicate) { return(AsyncHelper.RunSync(async() => await set.ByPredicateAsync(predicate))); }
public static IEnumerable <IGroup> ByDisplayNames(this IReadOnlyQueryableSetBase <IGroup> groups, params string[] displayNames) { return(AsyncHelper.RunSync(async() => await groups.ByDisplayNamesAsync(displayNames))); }