コード例 #1
0
        public void Create_BooleanParam_ReturnsBinaryNumber(bool?param, string expected)
        {
            var configuration = new SqlFilterConfiguration {
                WithoutParameters = true
            };

            var filterParam = SqlFilterParameter.Create(configuration, param);

            Assert.Equal(expected, filterParam.Value);
        }
コード例 #2
0
        public T ComparisonFilter <T>(string @operator, object value)
        {
            Func <SqlFilterConfiguration, SqlFilterParameter[]> args = config => new[]
            {
                SqlFilterParameter.Create(config, _sqlField),
                SqlFilterParameter.Create(config, value)
            };

            return(BuildFilter <T>("{0} " + @operator + " {1}", args));
        }
コード例 #3
0
        //----------------------------------------------------------------------------

        public TResult Like(string value)
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                throw new ArgumentException(nameof(value));
            }
            SqlFilterParameter[] GetParameters(SqlFilterConfiguration config) => new[]
            {
                SqlFilterParameter.Create(config, _sqlField), SqlFilterParameter.Create(config, value)
            };

            return(_sqlFilterBuilder.BuildFilter <TResult>("{0} LIKE {1}", GetParameters));
        }
コード例 #4
0
        public T ContainsFilter <T, TType>(string @operator, IEnumerable <TType> values)
        {
            Func <SqlFilterConfiguration, SqlFilterParameter[]> args = config =>
            {
                var list = new List <SqlFilterParameter>();
                list.Add(SqlFilterParameter.Create(config, _sqlField));
                list.AddRange(values.Select(val => SqlFilterParameter.Create(config, val)));
                return(list.ToArray());
            };

            var parameters = string.Join(",", values.Select((val, i) => $"{{{i + 1}}}"));

            return(BuildFilter <T>("{0} " + @operator + " (" + parameters + ")", args));
        }
コード例 #5
0
        public T ComparisonFilter <T>(string @operator, ISqlField sqlField)
        {
            if (sqlField == null)
            {
                throw new ArgumentNullException(nameof(sqlField));
            }
            Func <SqlFilterConfiguration, SqlFilterParameter[]> args = config => new[]
            {
                SqlFilterParameter.Create(config, _sqlField),
                SqlFilterParameter.Create(config, sqlField)
            };

            return(BuildFilter <T>("{0} " + @operator + " {1}", args));
        }
コード例 #6
0
        public override TList <PayoutItem> Find(TransactionManager transactionManager, SqlFilterParameterCollection parameters, string orderBy, int start, int pageLength, out int count)
        {
            SqlDatabase database = new SqlDatabase(this._connectionString);
            DbCommand   command  = StoredProcedureProvider.GetCommandWrapper(database, "dbo.PayoutItem_Find_Dynamic", typeof(PayoutItemColumn), parameters, orderBy, start, pageLength);

            if (parameters != null)
            {
                for (int i = 0; i < parameters.Count; i++)
                {
                    SqlFilterParameter parameter = parameters[i];
                    database.AddInParameter(command, parameter.Name, parameter.DbType, parameter.Value);
                }
            }
            TList <PayoutItem> rows   = new TList <PayoutItem>();
            IDataReader        reader = null;

            try
            {
                if (transactionManager != null)
                {
                    reader = Utility.ExecuteReader(transactionManager, command);
                }
                else
                {
                    reader = Utility.ExecuteReader(database, command);
                }
                PayoutItemProviderBaseCore.Fill(reader, rows, 0, 0x7fffffff);
                count = rows.Count;
                if (!reader.NextResult())
                {
                    return(rows);
                }
                if (reader.Read())
                {
                    count = reader.GetInt32(0);
                }
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
            return(rows);
        }
コード例 #7
0
 public T BuildFilter <T>(string expression, ISqlField sqlField)
 => BuildFilter <T>(_sqlFilterItems.Add(config
                                        => new SqlFilterItem.SqlFilterItem(expression, SqlFilterParameter.Create(config, sqlField))));