Exemple #1
0
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var parameters = BuildHelper.GetParameters(option, mi);
            var tableName  = table ??
                             (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ??
                             BuildHelper.GetTableName(option, mi);

            if (String.IsNullOrEmpty(tableName))
            {
                throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            var sql = new StringBuilder();

            sql.Append("INSERT INTO ");
            sql.Append(tableName);
            sql.Append(" (");
            BuildHelper.AddInsertColumns(sql, mi, parameters);
            sql.Append(") VALUES (");
            BuildHelper.AddInsertValues(sql, mi, parameters);
            sql.Append(")");

            var tokenizer = new SqlTokenizer(sql.ToString());
            var builder   = new NodeBuilder(tokenizer.Tokenize());

            return(builder.Build());
        }
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var parameters = BuildHelper.GetParameters(option, mi);
            var keys       = BuildHelper.GetKeyParameters(parameters);
            var tableName  = table ??
                             (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ??
                             BuildHelper.GetTableName(option, mi);
            var conditions = keys.Count > 0 ? keys : parameters;

            if (String.IsNullOrEmpty(tableName))
            {
                throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            if (!Force && (conditions.Count == 0))
            {
                throw new BuilderException($"Delete all requires force option. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            var sql = new StringBuilder();

            sql.Append("DELETE FROM ");
            sql.Append(tableName);
            BuildHelper.AddCondition(sql, conditions);

            var tokenizer = new SqlTokenizer(sql.ToString());
            var builder   = new NodeBuilder(tokenizer.Tokenize());

            return(builder.Build());
        }
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var tokenizer = new SqlTokenizer(sql);
            var tokens    = tokenizer.Tokenize();
            var builder   = new NodeBuilder(tokens);

            return(builder.Build());
        }
        public TestFactoryBuilder SetSql(Action <Dictionary <string, string> > action)
        {
            var map = new Dictionary <string, string>();

            action(map);
            loader = new MapLoader(map);
            return(this);
        }
 public DefaultDbSchemaReader(
     IDbProviderManager dbProviderManager,
     ISqlLoader sqlLoader,
     IObjectMapper objectMapper)
 {
     _dbProviderManager = dbProviderManager;
     _sqlLoader         = sqlLoader;
     _objectMapper      = objectMapper;
     Logger             = NullLogger <DefaultDbSchemaReader> .Instance;
 }
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var nodes = new List <INode>
            {
                new SqlNode(procedure)
            };

            nodes.AddRange(BuildHelper.GetParameters(option, mi).Select(x => new ParameterNode(x.Name, x.ParameterName)));

            return(nodes);
        }
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var tableName = table ?? BuildHelper.GetTableNameOfType(option, type);

            if (String.IsNullOrEmpty(tableName))
            {
                throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            return(new[]
            {
                new SqlNode($"TRUNCATE TABLE {tableName}")
            });
        }
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var parameters = BuildHelper.GetParameters(option, mi);
            var order      = BuildHelper.PickParameter <OrderAttribute>(parameters);
            var tableName  = table ??
                             (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ??
                             BuildHelper.GetReturnTableName(option, mi);

            if (String.IsNullOrEmpty(tableName))
            {
                throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            var sql = new StringBuilder();

            sql.Append("SELECT * FROM ");
            sql.Append(tableName);
            BuildHelper.AddCondition(sql, parameters);

            if (order != null)
            {
                sql.Append(" ORDER BY ");
                sql.Append($"/*# {order.Name} */dummy");
            }
            else if (!String.IsNullOrEmpty(Order))
            {
                sql.Append(" ORDER BY ");
                sql.Append(Order);
            }
            else
            {
                var columns = BuildHelper.MakeKeyColumns(option, mi.ReturnType);
                if (!String.IsNullOrEmpty(columns))
                {
                    sql.Append(" ORDER BY ");
                    sql.Append(columns);
                }
            }

            var tokenizer = new SqlTokenizer(sql.ToString());
            var builder   = new NodeBuilder(tokenizer.Tokenize());

            return(builder.Build());
        }
Exemple #9
0
        public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi)
        {
            var parameters = BuildHelper.GetParameters(option, mi);
            var tableName  = table ?? BuildHelper.GetTableNameOfType(option, type);

            if (String.IsNullOrEmpty(tableName))
            {
                throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]");
            }

            var sql = new StringBuilder();

            sql.Append("SELECT ");
            sql.Append(field);
            sql.Append(" FROM ");
            sql.Append(tableName);
            BuildHelper.AddCondition(sql, parameters);

            var tokenizer = new SqlTokenizer(sql.ToString());
            var builder   = new NodeBuilder(tokenizer.Tokenize());

            return(builder.Build());
        }
 public TestFactoryBuilder SetSql(string sql)
 {
     loader = new ConstLoader(sql);
     return(this);
 }
 public SqlLoader_Tests()
 {
     _sqlLoader = GetRequiredService <ISqlLoader>();
 }
Exemple #12
0
 public TestFactory(ISqlLoader loader, IGeneratorOption option, ExecuteEngine engine)
 {
     this.loader = loader;
     this.option = option;
     Engine      = engine;
 }
Exemple #13
0
 public abstract IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi);
 public DataAccessorGenerator(ISqlLoader sqlLoader, ISourceWriter sourceWriter, IGeneratorOption option)
 {
     this.sqlLoader    = sqlLoader;
     this.sourceWriter = sourceWriter;
     this.option       = option;
 }