Skip to content

Commit f7b1148

Browse files
committed
Always provide commandType, parameters when generating dao accessor to avoid missing overloads
1 parent aafb595 commit f7b1148

29 files changed

Lines changed: 200 additions & 161 deletions

src/Dibix.Sdk.VisualStudio/Configuration/DacPacSourceConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public DacPacSourceConfiguration(IFileSystemProvider fileSystemProvider, string
2323
#endregion
2424

2525
#region Overrides
26-
protected override IEnumerable<SqlStatementInfo> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger)
26+
protected override IEnumerable<SqlStatementDescriptor> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger)
2727
{
2828
SqlStatementCollector statementCollector = new DacPacSqlStatementCollector
2929
(

src/Dibix.Sdk.VisualStudio/Configuration/InputSourceConfiguration.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ public void Collect(CodeGenerationModel model, ITypeResolverFacade typeResolver,
2424
ISqlStatementParser parser = (ISqlStatementParser)Activator.CreateInstance(this.Parser);
2525
ISqlStatementFormatter formatter = (ISqlStatementFormatter)Activator.CreateInstance(this.Formatter);
2626
formatter.StripWhiteSpace = model.CommandTextFormatting == CommandTextFormatting.StripWhiteSpace;
27-
foreach (SqlStatementInfo info in this.CollectStatements(parser, formatter, typeResolver, schemaRegistry, logger).Where(x => x != null))
27+
foreach (SqlStatementDescriptor info in this.CollectStatements(parser, formatter, typeResolver, schemaRegistry, logger).Where(x => x != null))
2828
model.Statements.Add(info);
2929
}
3030
#endregion
3131

3232
#region Protected Methods
33-
protected abstract IEnumerable<SqlStatementInfo> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger);
33+
protected abstract IEnumerable<SqlStatementDescriptor> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger);
3434
#endregion
3535
}
3636
}

src/Dibix.Sdk.VisualStudio/Configuration/PhysicalSourceConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public PhysicalSourceConfiguration(IFileSystemProvider fileSystemProvider, strin
3434
#endregion
3535

3636
#region Overrides
37-
protected override IEnumerable<SqlStatementInfo> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger)
37+
protected override IEnumerable<SqlStatementDescriptor> CollectStatements(ISqlStatementParser parser, ISqlStatementFormatter formatter, ITypeResolverFacade typeResolver, ISchemaRegistry schemaRegistry, ILogger logger)
3838
{
3939
IEnumerable<string> files = this._fileSystemProvider
4040
.GetFiles(this._projectName, this._include, this._exclude)

src/Dibix.Sdk/CodeGeneration/Formatter/ExecStoredProcedureSqlStatementFormatter.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ namespace Dibix.Sdk.CodeGeneration
55
{
66
public sealed class ExecStoredProcedureSqlStatementFormatter : SqlStatementFormatter, ISqlStatementFormatter
77
{
8-
protected override string Format(SqlStatementInfo info, StatementList statementList)
9-
{
10-
info.CommandType = CommandType.StoredProcedure;
11-
return info.ProcedureName;
12-
}
8+
protected override FormattedSqlStatement Format(SqlStatementDescriptor statementDescriptor, StatementList statementList) => new FormattedSqlStatement(statementDescriptor.ProcedureName, CommandType.StoredProcedure);
139
}
1410
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Data;
2+
3+
namespace Dibix.Sdk.CodeGeneration
4+
{
5+
public sealed class FormattedSqlStatement
6+
{
7+
public string Content { get; set; }
8+
public CommandType CommandType { get; }
9+
10+
public FormattedSqlStatement(string content, CommandType commandType)
11+
{
12+
this.Content = content;
13+
this.CommandType = commandType;
14+
}
15+
}
16+
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
using Dibix.Sdk.Sql;
1+
using System.Data;
2+
using Dibix.Sdk.Sql;
23
using Microsoft.SqlServer.TransactSql.ScriptDom;
34

45
namespace Dibix.Sdk.CodeGeneration
56
{
67
public sealed class GenerateScriptSqlStatementFormatter : SqlStatementFormatter, ISqlStatementFormatter
78
{
8-
protected override string Format(SqlStatementInfo info, StatementList statementList)
9+
protected override FormattedSqlStatement Format(SqlStatementDescriptor statementDescriptor, StatementList statementList)
910
{
1011
TSqlBatch batch = new TSqlBatch();
1112

@@ -14,7 +15,7 @@ protected override string Format(SqlStatementInfo info, StatementList statementL
1415
base.CollectStatements(statementList, StatementHandler);
1516

1617
string generated = ScriptDomFacade.Generate(batch, x => x.Options.AlignClauseBodies = false);
17-
return generated;
18+
return new FormattedSqlStatement(generated, CommandType.Text);
1819
}
1920
}
2021
}

src/Dibix.Sdk/CodeGeneration/Formatter/ISqlStatementFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public interface ISqlStatementFormatter
66
{
77
bool StripWhiteSpace { get; set; }
88

9-
string Format(SqlStatementInfo info, StatementList statementList);
9+
FormattedSqlStatement Format(SqlStatementDescriptor statementDescriptor, StatementList statementList);
1010
}
1111
}

src/Dibix.Sdk/CodeGeneration/Formatter/SqlStatementFormatter.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@ public abstract class SqlStatementFormatter : ISqlStatementFormatter
1717

1818
public bool StripWhiteSpace { get; set; }
1919

20-
string ISqlStatementFormatter.Format(SqlStatementInfo info, StatementList statementList) => this.Format(info, statementList)?.Trim();
20+
FormattedSqlStatement ISqlStatementFormatter.Format(SqlStatementDescriptor statementDescriptor, StatementList statementList)
21+
{
22+
FormattedSqlStatement statement = this.Format(statementDescriptor, statementList);
23+
statement.Content = statement.Content.Trim();
24+
return statement;
25+
}
2126

22-
protected abstract string Format(SqlStatementInfo info, StatementList statementList);
27+
protected abstract FormattedSqlStatement Format(SqlStatementDescriptor statementDescriptor, StatementList statementList);
2328

2429
protected void CollectStatements(StatementList statementList, Action<TSqlStatement, int, int> statementHandler, Action<TSqlParserToken> tokenHandler = null)
2530
{

src/Dibix.Sdk/CodeGeneration/Formatter/TakeSourceSqlStatementFormatter.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Data;
23
using System.Linq;
34
using System.Text;
45
using Dibix.Sdk.Sql;
@@ -8,7 +9,7 @@ namespace Dibix.Sdk.CodeGeneration
89
{
910
public sealed class TakeSourceSqlStatementFormatter : SqlStatementFormatter, ISqlStatementFormatter
1011
{
11-
protected override string Format(SqlStatementInfo info, StatementList statementList)
12+
protected override FormattedSqlStatement Format(SqlStatementDescriptor statementDescriptor, StatementList statementList)
1213
{
1314
StringBuilder sb = new StringBuilder();
1415

@@ -34,7 +35,8 @@ void TokenHandler(TSqlParserToken token)
3435

3536
base.CollectStatements(statementList, StatementHandler, TokenHandler);
3637

37-
return DecreaseIndentation(sb.ToString());
38+
string content = DecreaseIndentation(sb.ToString());
39+
return new FormattedSqlStatement(content, CommandType.Text);
3840
}
3941

4042
private static string DecreaseIndentation(string text) => String.Join("\n", text.Split('\n').Select((line, lineIndex) =>

src/Dibix.Sdk/CodeGeneration/Model/CodeGenerationModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class CodeGenerationModel
1111
public string BaseUrl { get; set; }
1212
public CodeGeneratorCompatibilityLevel CompatibilityLevel { get; }
1313
public CommandTextFormatting CommandTextFormatting { get; set; }
14-
public IList<SqlStatementInfo> Statements { get; }
14+
public IList<SqlStatementDescriptor> Statements { get; }
1515
public IList<UserDefinedTypeSchema> UserDefinedTypes { get; }
1616
public ICollection<SchemaDefinition> Contracts { get; }
1717
public IList<ControllerDefinition> Controllers { get; }
@@ -21,7 +21,7 @@ public class CodeGenerationModel
2121
public CodeGenerationModel(CodeGeneratorCompatibilityLevel compatibilityLevel)
2222
{
2323
this.CompatibilityLevel = compatibilityLevel;
24-
this.Statements = new Collection<SqlStatementInfo>();
24+
this.Statements = new Collection<SqlStatementDescriptor>();
2525
this.UserDefinedTypes = new Collection<UserDefinedTypeSchema>();
2626
this.Contracts = new Collection<SchemaDefinition>();
2727
this.Controllers = new Collection<ControllerDefinition>();

0 commit comments

Comments
 (0)