Example #1
0
        public WhereClauseBuilder ForParameter <T>(T value, string columnName, SqlDbType sqlType)
        {
            if (value == null)
            {
                return(this);
            }

            if (!_isFirstParameter)
            {
                _builder.AppendLine(_logicalOperator.ToString());
            }

            if (_isFirstParameter)
            {
                _builder.AppendLine("WHERE");
                _isFirstParameter = false;
            }

            string paramName = $"@{columnName}";

            _builder.AppendLine($"[{columnName}] = {paramName}");
            _command.AddSqlParameter(paramName, value, sqlType);

            return(this);
        }
Example #2
0
        public ExpressionBuilder(LinkOperator link, ExpressionBuilder left, LogicalOperator opr, params ExpressionBuilder[] right)
        {
            buffer = link.ToString() + " " + left.buffer + " " + opr.ToString();
            if (opr == LogicalOperator.BETWEEN)
            {
                buffer += " " + right[0].buffer + " AND " + right[1].buffer;
                return;
            }

            if (opr == LogicalOperator.In)
            {
                buffer += " {";
                bool first = true;
                foreach (ExpressionBuilder eb in right)
                {
                    if (!first)
                    {
                        buffer += ", ";
                    }
                    buffer += eb.buffer;
                }
                buffer += "}";
                return;
            }

            buffer += " " + right[0];
        }
        public override string ToString()
        {
            var    str1 = LogicalOperator == LogicalOperator.NotSet ? "ON" : LogicalOperator.ToString().ToUpperInvariant();
            string str2;

            if (!string.IsNullOrWhiteSpace(LeftTableAlias))
            {
                str2 = "[" + LeftTableAlias + "].[" + LeftIdentifier + "]";
            }
            else
            {
                str2 = "[" + LeftTableSchema + "].[" + LeftTableName + "].[" + LeftIdentifier + "]";
            }
            var    str3 = str2;
            string str4;

            if (!string.IsNullOrWhiteSpace(RightTableAlias))
            {
                str4 = "[" + RightTableAlias + "].[" + RightIdentifier + "]";
            }
            else
            {
                str4 = "[" + RightTableSchema + "].[" + RightTableName + "].[" + RightIdentifier + "]";
            }
            var str5 = str4;

            return(string.Format("{0} {1} {2} {3}", (object)str1, (object)str3, (object)Operator, (object)str5));
        }
Example #4
0
        private void WriteLogicalOperator(LogicalOperator logicalOperator)
        {
            WriteSpace();

            writer.Write(logicalOperator.ToString().ToUpper());

            WriteSpace();
        }
Example #5
0
        /**
         * Parses the constraint as a SQL Where-clause item
         */
        //@Override
        public String toSql(bool?includeSchemaInColumnPaths)
        {
            if (_expression != null)
            {
                return(_expression);
            }

            StringBuilder sb = new StringBuilder();

            if (_childItems == null)
            {
                sb.Append(_selectItem.getSameQueryAlias(includeSchemaInColumnPaths));

                if (_operand == null && _operator == OperatorType.EQUALS_TO)
                {
                    sb.Append(" IS NULL");
                }
                else if (_operand == null && _operator == OperatorType.DIFFERENT_FROM)
                {
                    sb.Append(" IS NOT NULL");
                }
                else
                {
                    object operand = appendOperator(sb, _operand, _operator);

                    if (operand is SelectItem)
                    {
                        String selectItemString = ((SelectItem)operand)
                                                  .getSameQueryAlias(includeSchemaInColumnPaths);
                        sb.Append(selectItemString);
                    }
                    else
                    {
                        ColumnType columnType = _selectItem.getExpectedColumnType();
                        string     sqlValue   = ""; // FormatHelper.formatSqlValue(columnType, operand);
                        sb.Append(sqlValue);
                    }
                }
            }
            else
            {
                sb.Append('(');
                for (int i = 0; i < _childItems.Count; i++)
                {
                    FilterItem item = _childItems[i];
                    if (i != 0)
                    {
                        sb.Append(' ');
                        sb.Append(_logicalOperator.ToString());
                        sb.Append(' ');
                    }
                    sb.Append(item.toSql());
                }
                sb.Append(')');
            }

            return(sb.ToString());
        }
Example #6
0
        protected override void Serialize(System.Collections.Generic.IDictionary <string, object> json)
        {
            base.Serialize(json);

            json["logic"] = LogicalOperator.ToString().ToLowerInvariant();

            if (FilterDescriptors.Any())
            {
                json["filters"] = FilterDescriptors.OfType <JsonObject>().ToJson();
            }
        }
        private void HandleFirstParameter()
        {
            if (_isFirstParameter)
            {
                _builder.AppendLine("WHERE (");
                _isFirstParameter = false;

                return;
            }

            _builder.AppendLine(_logicalOperator.ToString());
        }
Example #8
0
        public override string ToString()
        {
            var actualOperator = LogicalOperator == LogicalOperator.NotSet
                ? "ON"
                : LogicalOperator.ToString()
                                 .ToUpperInvariant();
            var leftIdentifier = string.IsNullOrWhiteSpace(LeftTableAlias)
                ? $"[{LeftTableSchema}].[{LeftTableName}].[{LeftIdentifier}]"
                : $"[{LeftTableAlias}].[{LeftIdentifier}]";

            var rightIdentifier = string.IsNullOrWhiteSpace(RightTableAlias)
                ? $"[{RightTableSchema}].[{RightTableName}].[{RightIdentifier}]"
                : $"[{RightTableAlias}].[{RightIdentifier}]";

            return(string.Format(Template, actualOperator, leftIdentifier, Operator, rightIdentifier));
        }
        private void Visit(BinaryExpression expr, LogicalOperator op)
        {
            bool encloseInParens;

            encloseInParens = expr.Left is BinaryExpression l && op > GetOperator(l);

            _writer.OpenParenIf(encloseInParens);
            expr.Left.Accept(this);
            _writer.CloseParenIf(encloseInParens);

            _writer.AppendSpace();
            _writer.Append(op.ToString());
            _writer.AppendSpace();

            encloseInParens = expr.Right is BinaryExpression r && op > GetOperator(r);

            _writer.OpenParenIf(encloseInParens);
            expr.Right.Accept(this);
            _writer.CloseParenIf(encloseInParens);
        }
        public static string ConstructFilterQueryString(this IEnumerable <SearchCriteria> searches, LogicalOperator logical)
        {
            if (searches == null || !searches.Any())
            {
                return(string.Empty);
            }

            var queryString = new StringBuilder();

            for (var i = 0; i < searches.Count(); i++)
            {
                var criteria = searches.ElementAt(i);

                var filterString = ConstructUriFilterString(criteria);

                queryString.Append(i > 0 ? string.Format(" {0} {1}", logical.ToString(), filterString) : filterString);
            }

            var query = string.Format("$filter={0}", queryString);

            return(query);
        }
Example #11
0
 public FilterBy(string member, LogicalOperator op, string value)
 {
     this.Member = member;
     this.Value = value;
     this.Operator =  op.ToString();
 }
        public static string ConstructFilterQueryString(this IEnumerable<SearchCriteria> searches, LogicalOperator logical)
        {
            if (searches == null || !searches.Any()) return string.Empty;

            var queryString = new StringBuilder();
            for (var i = 0; i < searches.Count(); i++)
            {
                var criteria = searches.ElementAt(i);

                var filterString = ConstructUriFilterString(criteria);

                queryString.Append(i > 0 ? string.Format(" {0} {1}", logical.ToString(), filterString) : filterString);
            }

            var query = string.Format("$filter={0}", queryString);

            return query;
        }
Example #13
0
 private void WriteLogicalOperator(LogicalOperator logicalOperator)
 {
     whereBuilder.Append(string.Format(" {0} ", logicalOperator.ToString().ToUpper()));
 }
 public WhereClauseLogicalOperatorWindows(LogicalOperator logicalOperator)
 {
     _value = logicalOperator.ToString();
 }
Example #15
0
 public override string ToString()
 {
     return($@"{@operator.ToString()} : {id}");
 }
Example #16
0
        /// <summary>
        /// Get field filter expression by field search criteria.
        /// </summary>
        /// <returns></returns>
        public static String GetFieldFilterExpression(ObservableCollection <SpeciesObservationFieldSearchCriteria> searchCriterias, LogicalOperator logicalOperator)
        {
            StringBuilder fieldFilterExpression = new StringBuilder();
            String        filterValue           = String.Empty;
            String        filterExpression      = String.Empty;

            foreach (var searchCriteria in searchCriterias)
            {
                if (fieldFilterExpression.Length > 0)
                {
                    fieldFilterExpression.Append(" " + logicalOperator.ToString().ToUpper() + " ");
                }

                fieldFilterExpression.Append(searchCriteria.Property.GetName());
                filterValue = searchCriteria.Value;

                switch (searchCriteria.Operator)
                {
                case CompareOperator.BeginsWith:
                    filterExpression = " LIKE '{1}%'";
                    break;

                case CompareOperator.Contains:
                    filterExpression = " LIKE '%{1}%'";
                    break;

                case CompareOperator.EndsWith:
                    filterExpression = " LIKE '%{1}'";
                    break;

                case CompareOperator.Equal:
                    filterExpression = " = {0}{1}{2}";
                    break;

                case CompareOperator.Greater:
                    filterExpression = " > {0}{1}{2}";
                    break;

                case CompareOperator.GreaterOrEqual:
                    filterExpression = " >= {0}{1}{2}";
                    break;

                case CompareOperator.Less:
                    filterExpression = " < {0}{1}{2}";
                    break;

                case CompareOperator.LessOrEqual:
                    filterExpression = " <= {0}{1}{2}";
                    break;

                case CompareOperator.Like:
                    filterExpression = " LIKE '{1}'";
                    break;

                case CompareOperator.NotEqual:
                    filterExpression = " <> {0}{1}{2}";
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                // Apply cituation signs
                if (searchCriteria.Type == DataType.String)
                {
                    filterExpression = String.Format(filterExpression, "'", filterValue, "'");
                }
                else
                {
                    filterExpression = String.Format(filterExpression, String.Empty, filterValue, String.Empty);
                }

                fieldFilterExpression.Append(filterExpression);
            }

            return(fieldFilterExpression.ToString());
        }
Example #17
0
 private void WriteLogicalOperator(LogicalOperator logicalOperator)
 {
     this.whereBuilder.Append(string.Format(CultureInfo.InvariantCulture, " {0} ", logicalOperator.ToString().ToUpper(CultureInfo.InvariantCulture)));
 }