public override void ApplyQueryBuilder(IQueryBuilder builder, QueryWhereType whereType) { ApplyFuncWhere(builder, whereType, q => q .Where("started_at").IsNotNull() .And("finished_at").IsNull() ); }
public override void ApplyQueryBuilder(IQueryBuilder builder, QueryWhereType whereType) { if (_sign > 0) { ApplyColumnWhere(builder, whereType, "number", q => q.Gt(0)); } else { ApplyColumnWhere(builder, whereType, "number", q => q.Lt(0)); } }
protected void ApplyFuncWhere(IQueryBuilder builder, QueryWhereType whereType, QueryBuilder.QueryFunction func) { if (whereType == QueryWhereType.And) { builder.And(func); } else if (whereType == QueryWhereType.Or) { builder.Or(func); } else if (whereType == QueryWhereType.AndNot) { builder.AndNot(func); } else if (whereType == QueryWhereType.OrNot) { builder.OrNot(func); } else { throw new InvalidOperationException("Unknown query where type"); } }
protected void ApplyColumnWhere(IQueryBuilder builder, QueryWhereType whereType, string column, Func <IComparisonQueryBuilder, IQueryBuilder> func) { if (whereType == QueryWhereType.And) { func(builder.And(column)); } else if (whereType == QueryWhereType.Or) { func(builder.Or(column)); } else if (whereType == QueryWhereType.AndNot) { builder.AndNot(builder => func(builder.Where(column))); } else if (whereType == QueryWhereType.OrNot) { builder.OrNot(builder => func(builder.Where(column))); } else { throw new InvalidOperationException("Unknown query where type"); } }
public override void ApplyQueryBuilder(IQueryBuilder builder, QueryWhereType whereType) { ApplyColumnWhere(builder, whereType, "started_at", q => q.IsNull()); }
public abstract void ApplyQueryBuilder(IQueryBuilder builder, QueryWhereType whereType);
public override void ApplyQueryBuilder(IQueryBuilder builder, QueryWhereType whereType) { ApplyColumnWhere(builder, whereType, "column-r", q => q.Is(0)); }