Skip to content

Commit

Permalink
Merge branch 'release/v1.0.7'
Browse files Browse the repository at this point in the history
  • Loading branch information
EvilLord666 committed Mar 29, 2022
2 parents fa0a130 + 0a873d8 commit 3120ebf
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 23 deletions.
6 changes: 5 additions & 1 deletion DbTools/DbTools.Core/DbParametersKeys.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ public static class DbParametersKeys
public const string PasswordKey = "password";
public const string UseIntegratedSecurityKey = "useIntegratedSecurity";
public const string UseTrustedConnectionKey = "useTrustedConnection";
public const string DatabaseEngineVersion = "engineVersion";
public const string DatabaseEngineVersionKey = "engineVersion";
public const string SslModeKey = "ssl";
public const string ConnectionLifeTimeKey = "connLifeTime";
public const string ConnectionTimeOutKey = "connTimeout";
public const string CommandTimeOutKey = "cmdTimeout";
}
}
2 changes: 1 addition & 1 deletion DbTools/DbTools.Core/DbTools.Core.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp2.2;netcoreapp3.1;netcoreapp5.0;netcoreapp6.0</TargetFrameworks>
<TargetFrameworks>net472;netstandard2.0;netstandard2.1;netcoreapp2.2;netcoreapp3.1;netcoreapp5.0;netcoreapp6.0</TargetFrameworks>
</PropertyGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="DbTools.Simple" Version="1.0.6" />
<PackageReference Include="DbTools.Simple" Version="1.0.7" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
Expand Down
12 changes: 10 additions & 2 deletions DbTools/DbTools.Simple.Nuget.Tests/Managers/TestCommonDbManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ public class TestCommonDbManager
private void TestCreateLongDataWithNupkgLib(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password, bool isAsync)
{
IDbManager dbManager = CreateTestDbManager(dbEngine);
string connectionString = BuildConnectionString(dbEngine, useIntegratedSecurity, userName, password);
string connectionString = BuildConnectionString(dbEngine, useIntegratedSecurity, userName, password,
10000, 1200, 1000);
dbManager.CreateDatabase(connectionString, true);
string createTablesCmd = File.ReadAllText(Path.GetFullPath(CreateStructureForLongDataTestScriptFile));
string insertDataCmd = File.ReadAllText(Path.GetFullPath(InsertDataForLongDataTestScriptFile));
Expand All @@ -46,7 +47,8 @@ private IDbManager CreateTestDbManager(DbEngine dbEngine)
return DbManagerFactory.Create(dbEngine, _loggerFactory);
}

private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password)
private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password,
int? connectionLifeTime = null, int? connectionTimeout = null, int? commandTimeOut = null)
{
Tuple<string, string> hostAndDatabase = _hostAndDatabaseOptions[dbEngine];
IDictionary<string, string> options = new Dictionary<string, string>();
Expand All @@ -55,6 +57,12 @@ private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecuri
options.Add(DbParametersKeys.UseIntegratedSecurityKey, useIntegratedSecurity.ToString());
options.Add(DbParametersKeys.LoginKey, userName);
options.Add(DbParametersKeys.PasswordKey, password);
if (connectionLifeTime.HasValue)
options.Add(DbParametersKeys.ConnectionLifeTimeKey, connectionLifeTime.Value.ToString());
if (connectionTimeout.HasValue)
options.Add(DbParametersKeys.ConnectionTimeOutKey, connectionTimeout.Value.ToString());
if (commandTimeOut.HasValue)
options.Add(DbParametersKeys.CommandTimeOutKey, commandTimeOut.Value.ToString());
return ConnectionStringBuilder.Build(dbEngine, options);
}

Expand Down
12 changes: 10 additions & 2 deletions DbTools/DbTools.Simple.Tests/Managers/TestCommonDbManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ public void TestExecuteReader(DbEngine dbEngine, bool useIntegratedSecurity, str
private void TestCreateLongData(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password, bool isAsync)
{
IDbManager dbManager = CreateTestDbManager(dbEngine);
string connectionString = BuildConnectionString(dbEngine, useIntegratedSecurity, userName, password);
string connectionString = BuildConnectionString(dbEngine, useIntegratedSecurity, userName, password,
10000, 1200, 1000);
dbManager.CreateDatabase(connectionString, true);
string createTablesCmd = File.ReadAllText(Path.GetFullPath(CreateStructureForLongDataTestScriptFile));
string insertDataCmd = File.ReadAllText(Path.GetFullPath(InsertDataForLongDataTestScriptFile));
Expand All @@ -155,7 +156,8 @@ private IDbManager CreateTestDbManager(DbEngine dbEngine)
return DbManagerFactory.Create(dbEngine, _loggerFactory);
}

private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password)
private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password,
int? connectionLifeTime = null, int? connectionTimeout = null, int? commandTimeOut = null)
{
Tuple<string, string> hostAndDatabase = _hostAndDatabaseOptions[dbEngine];
IDictionary<string, string> options = new Dictionary<string, string>();
Expand All @@ -164,6 +166,12 @@ private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecuri
options.Add(DbParametersKeys.UseIntegratedSecurityKey, useIntegratedSecurity.ToString());
options.Add(DbParametersKeys.LoginKey, userName);
options.Add(DbParametersKeys.PasswordKey, password);
if (connectionLifeTime.HasValue)
options.Add(DbParametersKeys.ConnectionLifeTimeKey, connectionLifeTime.Value.ToString());
if (connectionTimeout.HasValue)
options.Add(DbParametersKeys.ConnectionTimeOutKey, connectionTimeout.Value.ToString());
if (commandTimeOut.HasValue)
options.Add(DbParametersKeys.CommandTimeOutKey, commandTimeOut.Value.ToString());
return ConnectionStringBuilder.Build(dbEngine, options);
}

Expand Down
2 changes: 1 addition & 1 deletion DbTools/DbTools.Simple/DbTools.Simple.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp2.1;netcoreapp2.2;netcoreapp3.1;netcoreapp5.0;netcoreapp6.0</TargetFrameworks>
<TargetFrameworks>net472;netstandard2.0;netstandard2.1;netcoreapp2.1;netcoreapp2.2;netcoreapp3.1;netcoreapp5.0;netcoreapp6.0</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
Expand Down
83 changes: 68 additions & 15 deletions DbTools/DbTools.Simple/Utils/ConnectionStringBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,13 @@ private static string BuildSqlServerConnectionString(IDictionary<string, string>
builder.IntegratedSecurity = Convert.ToBoolean(parameters[DbParametersKeys.UseIntegratedSecurityKey]);
if (parameters.ContainsKey(DbParametersKeys.UseTrustedConnectionKey))
builder.TrustServerCertificate = Convert.ToBoolean(parameters[DbParametersKeys.UseTrustedConnectionKey]);
if (parameters.ContainsKey(DbParametersKeys.ConnectionTimeOutKey))
{
Int32 connectionTimeOut = 0;
bool result = Int32.TryParse(parameters[DbParametersKeys.ConnectionTimeOutKey], out connectionTimeOut);
if (result)
builder.ConnectTimeout = connectionTimeOut;
}
return builder.ConnectionString;
}

Expand All @@ -47,10 +54,18 @@ private static string BuildSqLiteConnectionString(IDictionary<string, string> pa
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
if (parameters.ContainsKey(DbParametersKeys.DatabaseKey))
builder.DataSource = parameters[DbParametersKeys.DatabaseKey];
if (parameters.ContainsKey(DbParametersKeys.DatabaseEngineVersion))
builder.Version = Convert.ToInt32(parameters[DbParametersKeys.DatabaseEngineVersion]);
if (parameters.ContainsKey(DbParametersKeys.DatabaseEngineVersionKey))
builder.Version = Convert.ToInt32(parameters[DbParametersKeys.DatabaseEngineVersionKey]);
// builder.Pooling = false;
// builder.JournalMode = SQLiteJournalModeEnum.Off;
if (parameters.ContainsKey(DbParametersKeys.CommandTimeOutKey))
{
Int32 commandTimeOut = 0;
bool result = Int32.TryParse(parameters[DbParametersKeys.CommandTimeOutKey], out commandTimeOut);
if (result)
builder.DefaultTimeout = commandTimeOut;
}

return builder.ConnectionString;
}

Expand All @@ -61,22 +76,42 @@ private static string BuildMysqlConnectionString(IDictionary<string, string> par
builder.Server = parameters[DbParametersKeys.HostKey];
if (parameters.ContainsKey(DbParametersKeys.DatabaseKey))
builder.Database = parameters[DbParametersKeys.DatabaseKey].ToLower(); // otherwise is not working
/*if (parameters.ContainsKey(DbParametersKeys.UseIntegratedSecurityKey))
builder.IntegratedSecurity = Convert.ToBoolean(parameters[DbParametersKeys.UseIntegratedSecurityKey]);
else
{
builder.IntegratedSecurity = false;
builder.UserID = parameters[DbParametersKeys.LoginKey];
builder.Password = parameters[DbParametersKeys.PasswordKey];
}*/
if (parameters.ContainsKey(DbParametersKeys.LoginKey))
builder.UserID = parameters[DbParametersKeys.LoginKey];
if (parameters.ContainsKey(DbParametersKeys.PasswordKey))
builder.Password = parameters[DbParametersKeys.PasswordKey];
builder.ConnectionLifeTime = 1200;
builder.ConnectionTimeout = 1200;
builder.DefaultCommandTimeout = 1000;
builder.SslMode = MySqlSslMode.None;

if (parameters.ContainsKey(DbParametersKeys.ConnectionLifeTimeKey))
{
UInt32 connectionLifeTime = 0;
bool result = UInt32.TryParse(parameters[DbParametersKeys.ConnectionLifeTimeKey], out connectionLifeTime);
if (result)
builder.ConnectionLifeTime = connectionLifeTime;
}

if (parameters.ContainsKey(DbParametersKeys.ConnectionTimeOutKey))
{
UInt32 connectionTimeOut = 0;
bool result = UInt32.TryParse(parameters[DbParametersKeys.ConnectionTimeOutKey], out connectionTimeOut);
if (result)
builder.ConnectionTimeout = connectionTimeOut;
}

if (parameters.ContainsKey(DbParametersKeys.CommandTimeOutKey))
{
UInt32 commandTimeOut = 0;
bool result = UInt32.TryParse(parameters[DbParametersKeys.CommandTimeOutKey], out commandTimeOut);
if (result)
builder.DefaultCommandTimeout = commandTimeOut;
}

// todo:umv: handle this too ...
builder.SslMode = MySqlSslMode.None;
if (parameters.ContainsKey(DbParametersKeys.SslModeKey))
{
// builder.SslMode = parameters[DbParametersKeys.SslModeKey];
}

return builder.ConnectionString;
}

Expand All @@ -91,7 +126,25 @@ private static string BuildPostgresSqlConnectionString(IDictionary<string, strin
builder.Username = parameters[DbParametersKeys.LoginKey];
if (parameters.ContainsKey(DbParametersKeys.PasswordKey))
builder.Password = parameters[DbParametersKeys.PasswordKey];
//builder.Timeout = 0;
if (parameters.ContainsKey(DbParametersKeys.ConnectionLifeTimeKey))
{
Int32 connectionLifeTime = 0;
bool result = Int32.TryParse(parameters[DbParametersKeys.ConnectionLifeTimeKey], out connectionLifeTime);
if (result)
{
builder.ConnectionLifetime = connectionLifeTime;
builder.ConnectionIdleLifetime = connectionLifeTime;
}
}

if (parameters.ContainsKey(DbParametersKeys.CommandTimeOutKey))
{
Int32 commandTimeOut = 0;
bool result = Int32.TryParse(parameters[DbParametersKeys.CommandTimeOutKey], out commandTimeOut);
if (result)
builder.CommandTimeout = commandTimeOut;
}

return builder.ConnectionString;
}
}
Expand Down

0 comments on commit 3120ebf

Please sign in to comment.