Files
DP44/DataPRO/DbAPI/Connections/ConnectionDetails.cs
2026-04-17 14:55:32 -04:00

72 lines
3.0 KiB
C#

namespace DbAPI.Connections
{
/// <summary>
/// Basic implementation of <see cref="IConnectionDetails"/>
/// <inheritdoc cref="IConnectionDetails" />
/// </summary>
public class ConnectionDetails : IConnectionDetails
{
public virtual bool UseNTLMAuthentication { get; set; } = true;
public virtual string DbUser { get; set; } = "DataPROUser";
public virtual string DbUserPassword { get; set; } = "DTSSealBeachHQ";
public virtual string InstanceName { get; set; } = "DataPROInstance";
public virtual string DbServer { get; set; } = @"(localdb)\DataPROInstance";
public virtual string DbName { get; set; } = "DataPRO";
public virtual bool UsingCentralizedDb { get; set; } = false;
public virtual string DbFolderPath { get; set; } = "";
public virtual string AttachDbsBatPath { get; set; } = "";
public virtual string SqlDbPath { get; set; } = "";
public virtual string ODBCToolsPath { get; set; } = "";
/// <summary>
/// holds the code version of the database, what we would use if available
/// should be initialized by clients
/// </summary>
public int ClientDbVersion { get; set; }
/// <summary>
/// holds the version of the database, what we will be using
/// should be initialized by clients
/// </summary>
public int ConnectionDbVersion { get; set; }
protected string _Connection = null;
public virtual string GetConnectionString()
{
if (null != _Connection) { return _Connection; }
_Connection = UseNTLMAuthentication
? $"Server={DbServer};Database={DbName};Trusted_Connection=TRUE;"
: $"Server={DbServer};Database={DbName};User Id={DbUser};Password={DbUserPassword};";
return _Connection;
}
public override string ToString()
{
return UsingCentralizedDb ? $"{DbServer}\\{DbName}" : $"Local\\{DbName}";
}
public ConnectionDetails() { }
public ConnectionDetails(ConnectionDetails details)
{
UseNTLMAuthentication = details.UseNTLMAuthentication;
DbUser = details.DbUser;
DbUserPassword = details.DbUserPassword;
InstanceName = details.InstanceName;
DbServer = details.DbServer;
DbName = details.DbName;
UsingCentralizedDb = details.UsingCentralizedDb;
DbFolderPath = details.DbFolderPath;
AttachDbsBatPath = details.AttachDbsBatPath;
SqlDbPath = details.SqlDbPath;
ODBCToolsPath = details.ODBCToolsPath;
_Connection = details._Connection;
ClientDbVersion = details.ClientDbVersion;
ConnectionDbVersion = details.ConnectionDbVersion;
}
public virtual IConnectionDetails Clone()
{
return new ConnectionDetails(this);
}
}
}