using System; using System.Collections.Generic; using System.Linq; namespace Gallium { public static class WhereComponentsExtensions { public static IEnumerable WhereComponents( this IEnumerable entities, Func include) { return entities.Where(x => x.Has() && include(x, x.Get())); } public static IEnumerable WhereComponents( this IEnumerable entities, Func include) { return entities.Where( x => x.Has() && x.Has() && include(x, x.Get(), x.Get())); } public static IEnumerable WhereComponents( this IEnumerable entities, Func include) { return entities.Where( x => x.Has() && x.Has() && x.Has() && include(x, x.Get(), x.Get(), x.Get())); } public static IEnumerable WhereComponents( this IEnumerable entities, Func include) { return entities.Where( x => x.Has() && x.Has() && x.Has() && x.Has() && include( x, x.Get(), x.Get(), x.Get(), x.Get())); } } }