public async Task <IEnumerable <FuncionarioResponse> > GetFuncionario(string startname, List <string> gender, List <string> level, decimal?minsalary, decimal?maxsalary)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("select * from funcionarios ");

            if (!string.IsNullOrEmpty(startname))
            {
                sql.AppendLine(string.Format(" {0} name like @startname", DapperFuncitions.ExistsWhere(sql.ToString())));
            }
            if (gender.Count > 0)
            {
                sql.AppendLine(string.Format(" {0} gender in @gender", DapperFuncitions.ExistsWhere(sql.ToString())));
            }
            if (level.Count > 0)
            {
                sql.AppendLine(string.Format(" {0} level in @level", DapperFuncitions.ExistsWhere(sql.ToString())));
            }
            if ((minsalary ?? 0m) > 0)
            {
                sql.AppendLine(string.Format(" {0} salary < @minsalary", DapperFuncitions.ExistsWhere(sql.ToString())));
            }
            if ((maxsalary ?? 0m) > 0)
            {
                sql.AppendLine(string.Format(" {0} salary > @maxsalary", DapperFuncitions.ExistsWhere(sql.ToString())));
            }

            using (var connection = new SqlConnection(_DBConfig.GetConnectionString()))
            {
                return(await connection.QueryAsync <FuncionarioResponse>(sql.ToString(), new { startname = startname.FillLikeOperator(), gender, level, minsalary, maxsalary }));
            }
        }
        public void ExistsWhereWithOutValidInputSql()
        {
            string sql = "select any text no sql";

            var ret = DapperFuncitions.ExistsWhere(sql);

            Assert.Equal("", ret);
        }
        public void FillLikeOperatorWithNullValue()
        {
            var result = DapperFuncitions.FillLikeOperator(null);

            result = result.Substring(1, result.Length - 1);
            result = result.Substring(0, result.Length - 1);
            Assert.Equal("", result);
        }
        public void FillLikeOperatorWithInvalidSymbols(string operators)
        {
            var result = DapperFuncitions.FillLikeOperator(operators);

            result = result.Substring(1, result.Length - 1);
            result = result.Substring(0, result.Length - 1);
            var field = Regex.IsMatch(result, @"^[a-zA-Z0-9 ]+$") || result.Trim() == "";

            Assert.True(field);
        }
        public void ExistsWhereWithNullorEmptyValue(string sql)
        {
            var ret = DapperFuncitions.ExistsWhere(sql);

            Assert.NotNull(ret);
        }