public string Build(IEntityCommandBuilder commandBuilder)
        {
            if (!AcceptedNotOperators.Any(wo => wo == notExpression.Criterion.GetWhereOperator()))
            {
                throw new NotImplementedException();
            }

            var notOperator = notExpression.Criterion.GetNotOperator();
            var expression  = notExpression
                              .Criterion
                              .GetExpressionBuilder()
                              .Build(commandBuilder);

            switch (notExpression.Criterion.GetWhereOperator())
            {
            case WhereOperator.Between:
                return($"{notOperator}({expression})");

            case WhereOperator.Equal:
            case WhereOperator.Null:
                return(expression.Replace("==", "!="));

            default:
                return($"{notOperator}{expression}");
            }
        }
        public string Build(IEntityCommandBuilder commandBuilder)
        {
            var parameterName = commandBuilder.AddExpressionValue(inExpression.Values);

            return(string.Format(
                       inExpression.GetCommandTemplate(),
                       parameterName,
                       inExpression.GetPropertyName()));
        }
        public string Build(IEntityCommandBuilder commandBuilder)
        {
            var parameterNameStarts = commandBuilder.AddExpressionValue(betweenExpression.Starts);
            var parameterNameEnds   = commandBuilder.AddExpressionValue(betweenExpression.Ends);

            return(string.Format(
                       betweenExpression.GetCommandTemplate(),
                       betweenExpression.GetPropertyName(),
                       parameterNameStarts,
                       parameterNameEnds));
        }
        public string Build(IEntityCommandBuilder commandBuilder)
        {
            var sqlWhereBuilder      = new StringBuilder();
            var expressionsNumerator = BuildExpressionsBuilder().GetEnumerator();

            while (expressionsNumerator.MoveNext())
            {
                if (sqlWhereBuilder.Length > 0)
                {
                    sqlWhereBuilder.Append(junction.GetLogicalOperator());
                }

                var expressionBuilder = expressionsNumerator.Current;
                sqlWhereBuilder.Append(expressionBuilder.Build(commandBuilder));
            }

            return(string.Format(
                       junction.GetCommandTemplate(),
                       sqlWhereBuilder.ToString()));
        }
 public EntitySimpleExpressionTest(QueryFixture fixture)
 {
     commandBuilder = fixture.GetCommandBuilder();
 }