public override string BuildQueryPart(TableColumnResolveCallback tableColumnNameCallback, Func <object, string> addQueryParam, IQuerySyntaxProvider syntaxProvider) { var fn = tableColumnNameCallback(columnName, out var columnDef); if (columnDef is AliasQualifiedColumn aqc) { fn = aqc.FullQualifiedName; } return(syntaxProvider.BinaryCompareOperation(fn, op, TypeConverter.TryConvert(value, columnDef.Type.ManagedType), TypeConverter.TryConvert(value2, columnDef.Type.ManagedType), addQueryParam)); }
private string BrowseColumns(ICollection <TableColumnDefinition> desc, string columnName, string tableAlias, TableColumnResolveCallback getCustomColumnDef, out TableColumnDefinition def) { def = desc.FirstOrDefault(n => n.ColumnName.Equals(columnName, StringComparison.OrdinalIgnoreCase)); if (def != null) { return(SyntaxProvider.FullQualifyColumn(tableAlias, def.ColumnName)); // $"{(tableAlias != null ? $"[{tableAlias}]." : "")}[{col.ColumnName}]"; } return(getCustomColumnDef?.Invoke(columnName, out def)); }
/// <summary> /// Converts the current Query-Part to a string /// </summary> /// <param name="tableColumnNameCallback">a callback that provides table-information for a specific Column when building the query-string</param> /// <param name="addQueryParam">a callback that will create a query-parameter and return the parameter name. the parameter of the callback will be stored in the DbParameter object that is created</param> /// <param name="syntaxProvider">a Query-Syntax provider object that will help the filter to form specific query parts</param> /// <returns>the complete query for this Filter-object</returns> public abstract string BuildQueryPart(TableColumnResolveCallback tableColumnNameCallback, Func <object, string> addQueryParam, IQuerySyntaxProvider syntaxProvider);
/// <summary> /// Converts the current Query-Part to a string /// </summary> /// <param name="tableColumnNameCallback">a callback that provides table-information for a specific Column when building the query-string</param> /// <param name="addQueryParam">a callback that will create a query-parameter and return the parameter name. the parameter of the callback will be stored in the DbParameter object that is created</param> /// <param name="syntaxProvider">a Query-Syntax provider object that will help the filter to form specific query parts</param> /// <returns>the complete query for this Filter-object</returns> public override string BuildQueryPart(TableColumnResolveCallback tableColumnNameCallback, Func <object, string> addQueryParam, IQuerySyntaxProvider syntaxProvider) { return(syntaxProvider.BooleanLogicFilter(type, innerFilter, tableColumnNameCallback, addQueryParam, Invert)); }