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