public ISpecification<Person> BuildSpecificationFromQuery(PersonQuery query)
 {
     var leftSpec = GetNameAndJobSpecification(query.NameLogic, query.NameFragment, query.JobFragment);
     var rightSpec = GetAgeSpecifications(query.MinAgeLogic, query.MinAge, query.MaxAge);
     return getSpecificationByLogic(query.JobLogic, leftSpec, rightSpec);
 }
 public virtual IEnumerable<Person> Search(PersonQuery query)
 {
     ISpecification<Person> personSpecification = _specificationBuilder.BuildSpecificationFromQuery(query);
     return _repository.GetBySpecification(personSpecification);
 }