示例#1
0
        public void AddClauseIsNotNull(string tableName, string columnName, string tableAlias, TargetClauseType targetClauseType, SelectFunction?selectFunction)
        {
            var tableNameToUse           = _sqlQueryBuilderExtension.GetTableNameUseConsideringAlias(tableName, tableAlias);
            var columnNameWithConvention = _sqlAdapter.GetColumnName(tableNameToUse, columnName);
            var clauseInput = new ClauseInput(columnNameWithConvention, ClauseInputType.ByIsNotNull);

            _sqlQueryBuilderExtension.AddClauseOperation(clauseInput, targetClauseType, selectFunction);
        }
示例#2
0
        public void AddClauseByOperationComparison(string leftTableName, string leftColumnName, string operation, string rightTableName, string rightColumnName, TargetClauseType targetClauseType, SelectFunction?selectFunction)
        {
            var columnNameLeft  = _sqlAdapter.GetColumnName(leftTableName, leftColumnName);
            var columnNameRight = _sqlAdapter.GetColumnName(rightTableName, rightColumnName);
            var clauseInput     = new ClauseInput(columnNameLeft, operation, columnNameRight, ClauseInputType.ByOperationComparison);

            _sqlQueryBuilderExtension.AddClauseOperation(clauseInput, targetClauseType, selectFunction);
        }
示例#3
0
        public void AddClauseLike(string tableName, string columnName, string columnValue, string tableAlias, TargetClauseType targetClauseType, SelectFunction?selectFunction)
        {
            var parameterNameByColumnName = _sqlQueryBuilderExtension.GetParameterNameByColumnName(columnName);
            var tableNameToUse            = _sqlQueryBuilderExtension.GetTableNameUseConsideringAlias(tableName, tableAlias);
            var columnNameWithConvention  = _sqlAdapter.GetColumnName(tableNameToUse, columnName);
            var parameterFormated         = _sqlAdapter.GetParameterFormated(parameterNameByColumnName);
            var clauseInput = new ClauseInput(columnNameWithConvention, parameterFormated, ClauseInputType.ByLike);

            _sqlQueryBuilderExtension.AddClauseOperation(clauseInput, targetClauseType, selectFunction);
            _sqlQueryBuilderExtension.AddParameter(parameterNameByColumnName, columnValue);
        }
示例#4
0
        public void AddClauseOperation(ClauseInput clauseInput, TargetClauseType targetClauseType, SelectFunction?selectFunction)
        {
            switch (targetClauseType)
            {
            case TargetClauseType.Where:
                AddWhereClause(clauseInput);
                break;

            case TargetClauseType.Having:
                AddHavingClause(clauseInput, selectFunction.GetValueOrDefault());
                break;

            default:
                throw new SqlBuilderException("'targetClauseType' invalid");
            }
        }
示例#5
0
        public void AddClauseNotIn(string tableName, string columnName, List <object> values, string tableAlias, TargetClauseType targetClauseType, SelectFunction?selectFunction)
        {
            var parameters = values.Select(x =>
            {
                var parameterNameByColumnName = _sqlQueryBuilderExtension.GetParameterNameByColumnName(columnName);
                var parameterFormated         = _sqlAdapter.GetParameterFormated(parameterNameByColumnName);

                _sqlQueryBuilderExtension.AddParameter(parameterNameByColumnName, x);

                return(parameterFormated);
            });

            var tableNameToUse           = _sqlQueryBuilderExtension.GetTableNameUseConsideringAlias(tableName, tableAlias);
            var columnNameWithConvention = _sqlAdapter.GetColumnName(tableNameToUse, columnName);
            var parametersToAdd          = String.Join(",", parameters);
            var clauseInput = new ClauseInput(columnNameWithConvention, parametersToAdd, ClauseInputType.ByNotIn);

            _sqlQueryBuilderExtension.AddClauseOperation(clauseInput, targetClauseType, selectFunction);
        }
示例#6
0
 private void AddWhereClause(ClauseInput clauseInput)
 {
     _whereClause.Add(clauseInput.ToString());
 }
示例#7
0
        private void AddHavingClause(ClauseInput clauseInput, SelectFunction selectFunction)
        {
            var havingEpression = $"{selectFunction.ToString().ToUpper()}({clauseInput.Column}) {clauseInput.Operation} {clauseInput.ParameterFormated}";

            _havingClause.Add(havingEpression);
        }