public void Transform_may_create_a_transformed_non_matching_specification_expression_for_a_new_type(Pet pet) { var spec = Spec.Expr <Person>(x => x.Name == "One"); var transformed = spec.Transform(t => t.To <Pet>(x => x.Owner)); pet.Owner.Name = "Two"; Assert.That(() => transformed.Matches(pet), Is.False); }
public void Transform_expression_returns_a_spec_which_is_compatible_with_NHibernate() { using (var session = sessionFactory.OpenSession()) { SetupQueryIntegrationTest(session); var personSpec = Spec.Expr <Person>(x => x.Name == "Jane Doe"); var petSpec = personSpec.Transform(t => t.To <Pet>(x => x.Owner)); Assert.That(session.Query <Pet>().Where(petSpec).Select(x => x.Identity).FirstOrDefault(), Is.EqualTo(1)); } }
public Expression <Func <Ticket, bool> > GetExpression() { ISpecificationExpression <Ticket> output = Spec.Expr <Ticket>(x => true); foreach (var labelName in labelNames) { var nameExpression = Spec.Expr <Ticket>(x => x.Labels.Any(l => l.Name == labelName)); output = output.And(nameExpression); } return(output.GetExpression()); }
public ISpecificationExpression <Ticket> GetSpecification() => specBeingBuilt ?? Spec.Expr <Ticket>(x => true);
public ISpecificationExpression <Ticket> Equals(int value) => Spec.Expr <Ticket>(t => t.StoryPoints == value);
public ISpecificationExpression <Ticket> LessThanOrEqual(int value) => Spec.Expr <Ticket>(t => t.StoryPoints <= value);
public ISpecificationExpression <Ticket> GreaterThan(int value) => Spec.Expr <Ticket>(t => t.StoryPoints > value);