Example #1
0
        public PgSqlCommand GetSqlCommand(TableDefinition tableDefinition)
        {
            var sqlCommand = new PgSqlCommand();

            var fromComm = _fromClause.GetSqlCommand(tableDefinition);

            sqlCommand.AppendCommandLine($" DELETE FROM {fromComm.Command}", fromComm.Parameters);

            if (_whereClause != null)
            {
                var whereComm = _whereClause.GetSqlCommand(tableDefinition);
                sqlCommand.AppendCommandLine($"WHERE {whereComm.Command}", whereComm.Parameters);
            }

            if (_returning != null)
            {
                sqlCommand.AppendCommand($"RETURNING {_returning.GetSqlCommand(tableDefinition).Command}");
            }

            return(sqlCommand);
        }
Example #2
0
        public PgSqlCommand GetSqlCommand(TableDefinition tableDefinition)
        {
            var sqlCommand = new PgSqlCommand();

            TableDefinition keyDefinition = new TableDefinition();

            sqlCommand.AppendCommand($"INSERT INTO {String.Join(", ", _intoDestination.GetSqlCommand(tableDefinition).Command)}");

            if (_intoColumns != null)
            {
                var intoColumnsComm = _intoColumns.GetSqlCommand(tableDefinition);
                sqlCommand.AppendCommandLine($"{Environment.NewLine}\t({intoColumnsComm.Command})");

                _intoColumns._columns.ForEach(c =>
                {
                    var col = tableDefinition?.GetColumnBuilderByDbName(c._name);
                    if (col == null)
                    {
                        keyDefinition.AddColumn(new ColumnBuilder().SetDbName(c._name));
                    }
                    else
                    {
                        keyDefinition.AddColumn(col);
                    }
                });
            }

            if (_valueClauses.Any())
            {
                sqlCommand.AppendCommandLine($"VALUES");

                foreach (var valuesClause in _valueClauses)
                {
                    if (valuesClause is NamedValues namedValues)
                    {
                        var valuesComm = namedValues.GetSqlCommand(keyDefinition);
                        sqlCommand.AppendCommandLine($"\t({valuesComm.Command}),", valuesComm.Parameters);
                    }
                    else if (valuesClause is PositionedValues)
                    {
                        var valuesComm = valuesClause.GetSqlCommand(keyDefinition);
                        sqlCommand.AppendCommandLine($"\t({valuesComm.Command}),", valuesComm.Parameters);
                    }
                }
                sqlCommand.Command = sqlCommand.Command.TrimEnd($",{Environment.NewLine}".ToCharArray()) + Environment.NewLine;
            }

            if (_onConflict != null)
            {
                var onConflict = _onConflict.GetSqlCommand(tableDefinition);
                sqlCommand.AppendCommandLine(onConflict.Command, onConflict.Parameters);
            }

            if (_returningClause != null)
            {
                sqlCommand.AppendCommand($"RETURNING {_returningClause.GetSqlCommand(tableDefinition).Command}");
            }


            return(sqlCommand);
        }