public void Expressions6Chainer() { Expression <Func <User, List <User> > > lambda1 = u => u.Collaborators; Expression <Func <User, User> > lambda2 = m => m.Manager; var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <User, IEnumerable <User> > > expected = u => u.Collaborators.Select(m => m.Manager); Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public void Expressions5Chainer() { Expression <Func <User, List <Role> > > lambda1 = u => u.HabilitedRoles; Expression <Func <Role, int> > lambda2 = m => m.Id; var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <User, IEnumerable <int> > > expected = u => u.HabilitedRoles.Select(m => m.Id); Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public void Expressions4Chainer() { Expression <Func <User, User> > lambda1 = u => u.Manager; Expression <Func <User, bool> > lambda2 = m => m.HabilitedRoles.Any(r => r.HasContextualLegalEntityAssociation); var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <User, bool> > expected = a => a.Manager.HabilitedRoles.Any(r => r.HasContextualLegalEntityAssociation); Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public void Expressions3Chainer() { Expression <Func <Department, User> > lambda1 = u => u.Head; Expression <Func <User, bool> > lambda2 = i => i.Id == 2; var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <Department, bool> > expected = a => a.Head.Id == 2; Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public void Expressions2Chainer() { Expression <Func <User, int> > lambda1 = u => u.Id; Expression <Func <int, bool> > lambda2 = i => i == 2; var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <User, bool> > expected = a => a.Id == 2; Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public void Expressions8Chainer() { Expression <Func <Department, User> > lambda1 = d => d.EmployeeOfTheMonth[1]; Expression <Func <User, IEnumerable <User> > > lambda2 = u => u.Collaborators.Select(c => c); var result = ExpressionChainer.Chain(lambda1, lambda2); Expression <Func <Department, IEnumerable <User> > > expected = u => u.EmployeeOfTheMonth[1].Collaborators.Select(c => c); Assert.True(new ExpressionEqualityComparer().Equals(expected, result)); }
public LambdaExpression ToLambdaExpression() => ExpressionChainer.Chain(Current?.ToLambdaExpression(), Next?.ToLambdaExpression());