Exemplo n.º 1
0
        public override void ToString(StringBuilder sb, IQueryWithParams query)
        {
            var enumerable = value as IEnumerable;

            if (enumerable != null && !(value is string))
            {
                int i = 0;
                sb.Append('(');
                foreach (var k in enumerable)
                {
                    var param = query.AutoParam();
                    query.AddParam(param.Name, k);
                    if (i++ > 0)
                    {
                        sb.Append(',');
                    }
                    sb.Append(param.Name);
                }
                sb.Append(')');
            }
            else
            {
                var param = query.AutoParam();
                query.AddParam(param.Name, this.value);
                sb.Append(param.Name);
            }
        }
Exemplo n.º 2
0
        private Parameter AddParam(IQueryWithParams query, object value)
        {
            var param = query.AutoParam();

            query.AddParam(param.Name, value);
            return(param);
        }
Exemplo n.º 3
0
        public override void ToString(StringBuilder sb, IQueryWithParams query)
        {
            var enumerable = value as IEnumerable;

            if (enumerable != null && !(value is string))
            {
                var c = 0;
                foreach (var k in enumerable)
                {
                    c++;
                }

                int i = 0;
                sb.Append('(');
                foreach (var k in enumerable)
                {
                    if (i++ > 0)
                    {
                        sb.Append(',');
                    }

                    if (c > 10)
                    {
                        if (k is int ||
                            k is short ||
                            k is uint ||
                            k is long ||
                            k is byte)
                        {
                            sb.Append(k.ToString());
                            continue;
                        }
                    }
                    var param = query.AutoParam();
                    query.AddParam(param.Name, k);
                    sb.Append(param.Name);
                }
                sb.Append(')');
            }
            else
            {
                var param = query.AutoParam();
                query.AddParam(param.Name, this.value);
                sb.Append(param.Name);
            }
        }
Exemplo n.º 4
0
        public override void ToString(StringBuilder sb, IQueryWithParams query)
        {
            var enumerable = value as IEnumerable;
            if (enumerable != null && !(value is string))
            {
                var c = 0;
                foreach (var k in enumerable)
                    c++;

                int i = 0;
                sb.Append('(');
                foreach (var k in enumerable)
                {
                    if (i++ > 0)
                        sb.Append(',');

                    if (c > 10)
                    {
                        if (k is int ||
                            k is short ||
                            k is uint ||
                            k is long ||
                            k is byte)
                        {
                            sb.Append(k.ToString());
                            continue;
                        }
                    }
                    var param = query.AutoParam();
                    query.AddParam(param.Name, k);
                    sb.Append(param.Name);
                }
                sb.Append(')');
            }
            else
            {
                var param = query.AutoParam();
                query.AddParam(param.Name, this.value);
                sb.Append(param.Name);
            }
        }
Exemplo n.º 5
0
        public static string Coalesce(this IQueryWithParams query, params object[] values)
        {
            if (values == null || values.Length == 0)
            {
                throw new ArgumentNullException("values");
            }

            StringBuilder sb = new StringBuilder("COALESCE(");

            for (var i = 0; i < values.Length; i++)
            {
                if (i > 0)
                {
                    sb.Append(", ");
                }

                var value = values[i];
                if (value is ICriteria)
                {
                    ((ICriteria)value).ToString(sb, query);
                }
                else if (value is IQueryWithParams)
                {
                    sb.Append(((IQueryWithParams)value).ToString());
                }
                else if (value is IField)
                {
                    sb.Append(((IField)value).Expression);
                }
                else
                {
                    var param = query.AutoParam();
                    query.AddParam(param.Name, value);
                    sb.Append(param.Name);
                }
            }

            sb.Append(")");

            return(sb.ToString());
        }
Exemplo n.º 6
0
            public string ToString(IQueryWithParams query)
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("CASE ");

                if (when.Count == 0)
                {
                    throw new InvalidOperationException("There should be at least one WHEN/THEN pair.");
                }

                if (when.Count != then.Count)
                {
                    throw new InvalidOperationException("WHEN/THEN pairs doesn't match.");
                }

                for (var i = 0; i < when.Count; i++)
                {
                    sb.Append(" WHEN ");
                    when[i].ToString(sb, query);
                    sb.Append(" THEN ");
                    var value = then[i];
                    if (value is ICriteria)
                    {
                        ((ICriteria)value).ToString(sb, query);
                    }
                    else if (value is IQueryWithParams)
                    {
                        sb.Append(((IQueryWithParams)value).ToString());
                    }
                    else if (value is IField)
                    {
                        sb.Append(((IField)value).Expression);
                    }
                    else
                    {
                        var param = query.AutoParam();
                        query.AddParam(param.Name, value);
                        sb.Append(param.Name);
                    }
                }

                if (!Object.ReferenceEquals(null, elseValue))
                {
                    sb.Append(" ELSE ");

                    if (elseValue is ICriteria)
                    {
                        ((ICriteria)elseValue).ToString(sb, query);
                    }
                    else if (elseValue is IQueryWithParams)
                    {
                        sb.Append(((IQueryWithParams)elseValue).ToString());
                    }
                    else if (elseValue is IField)
                    {
                        sb.Append(((IField)elseValue).Expression);
                    }
                    else
                    {
                        var param = query.AutoParam();
                        query.AddParam(param.Name, elseValue);
                        sb.Append(param.Name);
                    }
                }

                sb.Append(" END");

                return(sb.ToString());
            }
Exemplo n.º 7
0
 private Parameter AddParam(IQueryWithParams query, object value)
 {
     var param = query.AutoParam();
     query.AddParam(param.Name, value);
     return param;
 }
Exemplo n.º 8
0
            public string ToString(IQueryWithParams query)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("CASE ");

                if (when.Count == 0)
                    throw new InvalidOperationException("There should be at least one WHEN/THEN pair.");

                if (when.Count != then.Count)
                    throw new InvalidOperationException("WHEN/THEN pairs doesn't match.");

                for (var i = 0; i < when.Count; i++)
                {
                    sb.Append(" WHEN ");
                    when[i].ToString(sb, query);
                    sb.Append(" THEN ");
                    var value = then[i];
                    if (value is ICriteria)
                        ((ICriteria)value).ToString(sb, query);
                    else if (value is IQueryWithParams)
                        sb.Append(((IQueryWithParams) value).ToString());
                    else if (value is IField)
                        sb.Append(((IField) value).Expression);
                    else
                    {
                        var param = query.AutoParam();
                        query.AddParam(param.Name, value);
                        sb.Append(param.Name);
                    }
                }

                if (!Object.ReferenceEquals(null, elseValue))
                {
                    sb.Append(" ELSE ");

                    if (elseValue is ICriteria)
                        ((ICriteria)elseValue).ToString(sb, query);
                    else if (elseValue is IQueryWithParams)
                        sb.Append(((IQueryWithParams)elseValue).ToString());
                    else if (elseValue is IField)
                        sb.Append(((IField)elseValue).Expression);
                    else
                    {
                        var param = query.AutoParam();
                        query.AddParam(param.Name, elseValue);
                        sb.Append(param.Name);
                    }
                }

                sb.Append(" END");

                return sb.ToString();
            }