public override DbCommand CreateSelectRangeCommand(WhereClip where, string[] columns, int topCount, int skipCount, string identyColumn, bool identyColumnIsNumber) { //Check.Require(((object)where) != null && where.From != null, "expr and expr.From could not be null!"); //Check.Require(columns != null && columns.Length > 0, "columns could not be null or empty!"); //Check.Require(topCount > 0, "topCount must > 0!"); if (string.IsNullOrEmpty(where.OrderBy) && identyColumn != null) { where.SetOrderBy(new KeyValuePair <string, bool>[] { new KeyValuePair <string, bool>(identyColumn, false) }); } if (topCount == int.MaxValue && skipCount == 0) { return(CreateSelectCommand(where, columns)); } else if (skipCount == 0) { return(CreateSelectTopCommand(where, columns, topCount)); } else { //Check.Require(!string.IsNullOrEmpty(identyColumn), "identyColumn could not be null or empty!"); identyColumn = ColumnFormatter.ValidColumnName(identyColumn); if (identyColumnIsNumber && where.OrderByStartsWith(identyColumn) && (string.IsNullOrEmpty(where.GroupBy) || where.GroupBy == identyColumn)) { return(CreateSelectRangeCommandForSortedRows(where, columns, topCount, skipCount, identyColumn, where.OrderByStartsWith(identyColumn + " DESC"))); } else { return(CreateSelectRangeCommandForUnsortedRows(where, columns, topCount, skipCount, identyColumn)); } } }
public static string RemoveQuotesForJavaScriptMethods(string input, GridView grid) { string str = input; foreach (Column column in grid.Columns) { if (((column.Formatter != null) && (column.Formatter.Count > 0)) && (column.Formatter[0] != null)) { ColumnFormatter formatter = column.Formatter[0]; if (formatter is CustomFormatter) { CustomFormatter formatter2 = (CustomFormatter)formatter; string oldValue = string.Format("\"formatter\":\"{0}\"", formatter2.FormatFunction); string newValue = string.Format("\"formatter\":{0}", formatter2.FormatFunction); str = str.Replace(oldValue, newValue); oldValue = string.Format("\"unformat\":\"{0}\"", formatter2.UnFormatFunction); newValue = string.Format("\"unformat\":{0}", formatter2.UnFormatFunction); str = str.Replace(oldValue, newValue); } } foreach (EditClientSideValidator validator in column.EditClientSideValidators) { if (validator is CustomValidator) { var validator2 = (CustomValidator)validator; string str4 = string.Format("\"custom_func\":\"{0}\"", validator2.ValidationFunction); string str5 = string.Format("\"custom_func\":{0}", validator2.ValidationFunction); str = str.Replace(str4, str5); } } } return(str); }
public SqlQueryBody Build(bool selectCount = false) { SqlQueryBody queryBody = new SqlQueryBody() { QueryMap = QueryMap }; if (string.IsNullOrEmpty(alias)) { alias = tableName; queryBody.From = tableName; } else { queryBody.From = string.Format("{0} {1}", tableName, alias); } if (columnNames.Count < 1) { queryBody.ColumnEnumeration = "*"; } else { queryBody.ColumnEnumeration = ColumnFormatter.Format(columnNames, alias); } if (selectCount) { var countFunction = dialect.GetFunction(FunctionNames.Count); var sql = countFunction.ToSqlStatement(new QueryParam("*", null)); queryBody.ColumnEnumeration = sql; } StringBuilder joinBuilder = new StringBuilder(); if (joins.Count > 0) { string jtype = "JOIN"; foreach (var join in joins.Values) { switch (join.Type) { case JoinType.Inner: jtype = "INNER JOIN"; break; case JoinType.Left: jtype = "LEFT JOIN"; break; case JoinType.Right: jtype = "RIGHT JOIN"; break; case JoinType.Full: jtype = "FULL JOIN"; break; } joinBuilder.AppendFormat("{0} {1} {2} ON ", jtype, join.JoinTableName, join.JoinTableAlias); string leftSide = string.Format("{0}.{1}", join.JoinLeftTableAlias, join.JoinRightColumn); if (join.JoinRightColumn.Contains(".")) { leftSide = join.JoinRightColumn; } string rightSide = string.Format("{0}.{1}", join.JoinTableAlias, join.JoinLeftColumn); if (join.JoinLeftColumn.Contains(".")) { rightSide = join.JoinLeftColumn; } joinBuilder.AppendFormat("{0} = {1} ", leftSide, rightSide); } queryBody.JoinEnumeration = joinBuilder.ToString().Trim(); } if (whereClauses.Count > 0) { var firstWhere = whereClauses[0]; var sql = firstWhere.BuildSqlString(dialect, 0); AddToParameterList(sql.Item2); StringBuilder wherebuilder = new StringBuilder(); wherebuilder.AppendFormat("{0} ", sql.Item1); if (whereClauses.Count > 1) { for (int i = 1; i < whereClauses.Count; i++) { var where = whereClauses[i].BuildSqlString(dialect, i); AddToParameterList(where.Item2); string prep = "AND"; if (whereClauses[i].PreOperator != SqlOperator.AND) { prep = "OR"; } wherebuilder.AppendFormat("{0} {1} ", prep, where.Item1); } } queryBody.WhereExpression = wherebuilder.ToString().Trim(); } if (sortClauses.Count > 0) { queryBody.SortExpression = string.Join(", ", sortClauses); } return(queryBody); }
public override DbCommand CreateSelectRangeCommand(WhereClip where, string[] columns, int topCount, int skipCount, string identyColumn, bool identyColumnIsNumber) { //Check.Require(((object)where) != null && where.From != null, "expr and expr.From could not be null!"); //Check.Require(columns != null && columns.Length > 0, "columns could not be null or empty!"); //Check.Require(topCount > 0, "topCount must > 0!"); if (string.IsNullOrEmpty(where.OrderBy) && identyColumn != null) { where.SetOrderBy(new KeyValuePair <string, bool>[] { new KeyValuePair <string, bool>(identyColumn, false) }); } if (topCount == int.MaxValue && skipCount == 0) { return(CreateSelectCommand(where, columns)); } else { //Check.Require(!string.IsNullOrEmpty(identyColumn), "identyColumn could not be null or empty!"); identyColumn = ColumnFormatter.ValidColumnName(identyColumn); //page split algorithm using ROW_NUMBER() in Oracle9+ DbCommand cmd = fac.CreateCommand(); cmd.CommandType = CommandType.Text; StringBuilder sb = new StringBuilder(); sb.Append("SELECT *"); //for (int i = 0; i < columns.Length; ++i) //{ // sb.Append("[__T].[__C"); // sb.Append(i); // sb.Append(']'); // if (i < columns.Length - 1) // { // sb.Append(','); // } //} sb.Append(" FROM ("); sb.Append("SELECT "); for (int i = 0; i < columns.Length; ++i) { SqlQueryUtils.AppendColumnName(sb, columns[i]); if (i < columns.Length - 1) { sb.Append(','); } } sb.Append(",ROW_NUMBER() OVER (ORDER BY "); if (string.IsNullOrEmpty(where.OrderBy)) { sb.Append(identyColumn); } else { sb.Append(where.OrderBy); } sb.Append(") AS [__Pos]"); sb.Append(" FROM "); if (string.IsNullOrEmpty(where.OrderBy)) { sb.Append(where.ToString()); } else { lock (where) { string tempOrderBy = where.OrderBy; where.OrderBy = null; sb.Append(where.ToString()); where.OrderBy = tempOrderBy; } } sb.Append(") [__T] WHERE [__T].[__Pos]>"); sb.Append(skipCount); if (topCount < int.MaxValue && (int.MaxValue - topCount > skipCount)) { sb.Append(" AND [__T].[__Pos]<="); sb.Append(topCount + skipCount); sb.Append(' '); } AddExpressionParameters(where, cmd); cmd.CommandText = SqlQueryUtils.ReplaceDatabaseTokens(sb.ToString(), leftToken, rightToken, paramPrefixToken, wildcharToken, wildsinglecharToken); PrepareCommand(cmd); return(cmd); } }
private void ApplyFormatterOptions(Column column) { if ((column.Formatter.Count > 0) && (column.Formatter[0] != null)) { ColumnFormatter formatter = column.Formatter[0]; Hashtable hashtable = new Hashtable(); if (formatter is LinkFormatter) { LinkFormatter formatter2 = (LinkFormatter)formatter; _jsonValues["formatter"] = "link"; if (!string.IsNullOrEmpty(formatter2.Target)) { hashtable["target"] = formatter2.Target; } } if (formatter is EmailFormatter) { _jsonValues["formatter"] = "email"; } if (formatter is IntegerFormatter) { IntegerFormatter formatter3 = (IntegerFormatter)formatter; _jsonValues["formatter"] = "integer"; if (!string.IsNullOrEmpty(formatter3.ThousandsSeparator)) { hashtable["thousandsSeparator"] = formatter3.ThousandsSeparator; } if (!string.IsNullOrEmpty(formatter3.DefaultValue)) { hashtable["defaultValue"] = formatter3.DefaultValue; } } if (formatter is NumberFormatter) { NumberFormatter formatter4 = (NumberFormatter)formatter; _jsonValues["formatter"] = "integer"; if (!string.IsNullOrEmpty(formatter4.ThousandsSeparator)) { hashtable["thousandsSeparator"] = formatter4.ThousandsSeparator; } if (!string.IsNullOrEmpty(formatter4.DefaultValue)) { hashtable["defaultValue"] = formatter4.DefaultValue; } if (!string.IsNullOrEmpty(formatter4.DecimalSeparator)) { hashtable["decimalSeparator"] = formatter4.DecimalSeparator; } if (formatter4.DecimalPlaces != -1) { hashtable["decimalPlaces"] = formatter4.DecimalPlaces; } } if (formatter is CurrencyFormatter) { CurrencyFormatter formatter5 = (CurrencyFormatter)formatter; _jsonValues["formatter"] = "currency"; if (!string.IsNullOrEmpty(formatter5.ThousandsSeparator)) { hashtable["thousandsSeparator"] = formatter5.ThousandsSeparator; } if (!string.IsNullOrEmpty(formatter5.DefaultValue)) { hashtable["defaultValue"] = formatter5.DefaultValue; } if (!string.IsNullOrEmpty(formatter5.DecimalSeparator)) { hashtable["decimalSeparator"] = formatter5.DecimalSeparator; } if (formatter5.DecimalPlaces != -1) { hashtable["decimalPlaces"] = formatter5.DecimalPlaces; } if (!string.IsNullOrEmpty(formatter5.Prefix)) { hashtable["prefix"] = formatter5.Prefix; } if (!string.IsNullOrEmpty(formatter5.Prefix)) { hashtable["suffix"] = formatter5.Suffix; } } if (formatter is CheckBoxFormatter) { CheckBoxFormatter formatter6 = (CheckBoxFormatter)formatter; _jsonValues["formatter"] = "checkbox"; if (formatter6.Enabled) { hashtable["disabled"] = false; } } if (formatter is CustomFormatter) { CustomFormatter formatter7 = (CustomFormatter)formatter; if (!string.IsNullOrEmpty(formatter7.FormatFunction)) { _jsonValues["formatter"] = formatter7.FormatFunction; } if (!string.IsNullOrEmpty(formatter7.UnFormatFunction)) { _jsonValues["unformat"] = formatter7.UnFormatFunction; } } if (hashtable.Count > 0) { _jsonValues["formatoptions"] = hashtable; } } }