private void AddJoin(JoinBuilder <TEntity> joinBuilder) { if (joinBuilder == null || _joinBuilders.Any(q => q.Specification == joinBuilder.Specification)) { return; } _joinBuilders.Add(joinBuilder); }
private IEnumerable <JoinBuilder <TEntity> > ConcatUniqueJoins(params JoinBuilder <TEntity>[][] joins) { IEnumerable <JoinBuilder <TEntity> > result = new JoinBuilder <TEntity> [0]; foreach (var joinArray in joins) { if (joinArray == null || joinArray.Length < 1) { continue; } result = result.Concat(joinArray); } return(result .GroupBy(join => join.Specification) .Select(joinGroup => joinGroup.First()) .ToArray()); }