Skip to content

Commit

Permalink
SQLQueryTableNameResolver and SQLQueryParametersBuilder classes exposed.
Browse files Browse the repository at this point in the history
  • Loading branch information
glecchi committed Nov 20, 2024
1 parent 5cb3267 commit 968e9b2
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Lib/CSQLQueryExpress/CSQLQueryExpress.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Title>CSQLQueryExpress</Title>
<Version>1.3.5</Version>
<Version>1.3.6</Version>
<Description>A simple c# library to compile TSQL queries</Description>
<PackageProjectUrl></PackageProjectUrl>
<PackageReadmeFile>README.md</PackageReadmeFile>
Expand Down
24 changes: 15 additions & 9 deletions Lib/CSQLQueryExpress/Compiler/SQLQueryParametersBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,29 @@

namespace CSQLQueryExpress
{
internal class SQLQueryParametersBuilder : ISQLQueryParametersBuilder
public sealed class SQLQueryParametersBuilder : ISQLQueryParametersBuilder
{
public IDictionary<string, SQLQueryParameter> Parameters { get; } = new Dictionary<string, SQLQueryParameter>();
IDictionary<string, SQLQueryParameter> ISQLQueryParametersBuilder.Parameters { get; } = new Dictionary<string, SQLQueryParameter>();

public string AddParameter(object value)
private readonly string _parameterPrefix;

public SQLQueryParametersBuilder(string parameterPrefix = "@")
{
var parameterName = $"@p{Parameters.Count}";
Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value));
return parameterName;
_parameterPrefix = parameterPrefix;
}

public string AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction)
string ISQLQueryParametersBuilder.AddParameter(object value)
{
var parameterName = $"@{name}";
Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction));
var parameterName = $"{_parameterPrefix}p{((ISQLQueryParametersBuilder)this).Parameters.Count}";
((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value));
return parameterName;
}

string ISQLQueryParametersBuilder.AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction)
{
var parameterName = $"{_parameterPrefix}{name}";
((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction));
return parameterName;
}
}
}
10 changes: 5 additions & 5 deletions Lib/CSQLQueryExpress/Compiler/SQLQueryTableNameResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

namespace CSQLQueryExpress
{
internal class SQLQueryTableNameResolver : ISQLQueryTableNameResolver
public sealed class SQLQueryTableNameResolver : ISQLQueryTableNameResolver
{
private IDictionary<Type, SQLQueryTableName> Alias { get; } = new Dictionary<Type, SQLQueryTableName>();

private IDictionary<Type, IDictionary<MemberInfo, string>> MembersTypes { get; } = new Dictionary<Type, IDictionary<MemberInfo, string>>();

public SQLQueryTableName ResolveTableName(Type objType)
SQLQueryTableName ISQLQueryTableNameResolver.ResolveTableName(Type objType)
{
if (!Alias.TryGetValue(objType, out SQLQueryTableName alias))
{
Expand Down Expand Up @@ -46,14 +46,14 @@ public SQLQueryTableName ResolveTableName(Type objType)
return alias;
}

public string ResolveTableNameAsAlias(Type objType)
string ISQLQueryTableNameResolver.ResolveTableNameAsAlias(Type objType)
{
var tableAlias = ResolveTableName(objType);
var tableAlias = ((ISQLQueryTableNameResolver)this).ResolveTableName(objType);

return $"{tableAlias.TableName} AS {tableAlias.TableAlias}";
}

public string ResolveColumnName(Type objType, MemberInfo member)
string ISQLQueryTableNameResolver.ResolveColumnName(Type objType, MemberInfo member)
{
if (!MembersTypes.TryGetValue(member.DeclaringType, out IDictionary<MemberInfo, string> members))
{
Expand Down

0 comments on commit 968e9b2

Please sign in to comment.