public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); parameters.AddWhereWithParams(propertyName, "in (", values, ")"); }
public void AddToQuery(AuditConfiguration auditCfg, IAuditReaderImplementor versionsReader, string entityName, QueryBuilder qb, Parameters parameters) { var propertyName = CriteriaTools.DeterminePropertyName(auditCfg, versionsReader, entityName, _propertyNameGetter); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); parameters.AddWhereWithFunction(propertyName, " lower ", " like ", _value.ToLower()); }
public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); // This will be the aggregated query, containing all the specified conditions QueryBuilder subQb = qb.NewSubQueryBuilder(); // Adding all specified conditions both to the main query, as well as to the // aggregated one. foreach (IAuditCriterion versionsCriteria in criterions) { versionsCriteria.AddToQuery(auditCfg, entityName, qb, parameters); versionsCriteria.AddToQuery(auditCfg, entityName, subQb, subQb.RootParameters); } // Setting the desired projection of the aggregated query switch (mode) { case AggregatedMode.MIN: subQb.AddProjection("min", propertyName, false); break; case AggregatedMode.MAX: subQb.AddProjection("max", propertyName, false); break; } // Adding the constrain on the result of the aggregated criteria parameters.AddWhere(propertyName, "=", subQb); }
public void AddToQuery(AuditConfiguration auditCfg, IAuditReaderImplementor versionsReader, string entityName, QueryBuilder qb, Parameters parameters) { var propertyName = CriteriaTools.DeterminePropertyName(auditCfg, versionsReader, entityName, propertyNameGetter); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, otherPropertyName); parameters.AddWhere(propertyName, op, otherPropertyName); }
public void AddToQuery(AuditConfiguration auditCfg, IAuditReaderImplementor versionsReader, string entityName, QueryBuilder qb, Parameters parameters) { var propertyName = CriteriaTools.DeterminePropertyName(auditCfg, versionsReader, entityName, propertyNameGetter); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); var subParams = parameters.AddSubParameters(Parameters.AND); subParams.AddWhereWithParam(propertyName, ">=", lo); subParams.AddWhereWithParam(propertyName, "<=", hi); }
public void AddToQuery(AuditConfiguration auditCfg, IAuditReaderImplementor versionsReader, string entityName, QueryBuilder qb, Parameters parameters) { var propertyName = CriteriaTools.DeterminePropertyName(auditCfg, versionsReader, entityName, propertyNameGetter); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); // Make sure our conditions are ANDed together even if the parent Parameters have a different connective var subParams = parameters.AddSubParameters(Parameters.AND); // This will be the aggregated query, containing all the specified conditions var subQb = qb.NewSubQueryBuilder(); // Adding all specified conditions both to the main query, as well as to the // aggregated one. foreach (var versionsCriteria in criterions) { versionsCriteria.AddToQuery(auditCfg, versionsReader, entityName, qb, subParams); versionsCriteria.AddToQuery(auditCfg, versionsReader, entityName, subQb, subQb.RootParameters); } // Setting the desired projection of the aggregated query switch (mode) { case AggregatedMode.Min: subQb.AddProjection("min", propertyName, false); break; case AggregatedMode.Max: subQb.AddProjection("max", propertyName, false); break; } // Correlating subquery with the outer query by entity id. if (correlate) { var originalIdPropertyName = auditCfg.AuditEntCfg.OriginalIdPropName; auditCfg.EntCfg[entityName].IdMapper.AddIdsEqualToQuery(subQb.RootParameters, subQb.RootAlias + "." + originalIdPropertyName, qb.RootAlias + "." + originalIdPropertyName); } // Adding the constrain on the result of the aggregated criteria subParams.AddWhere(propertyName, "=", subQb); }