using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MOKA_Factory_Tools.Database
{
public class ConnectionParameters
{
#if DEBUG
public ConnectionParameters()
{
DatabaseServer = "DESKTOP-71AIDNV";
DatabaseName = "MESOtherData";
connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName);
}
#endif
#region 连接串
// 无端口号;
private const string _msdbconnect = "Data Source={0};Initial Catalog={1};User ID={2};Password={3}";
// 有端口号;
private const string _msdbconnect_port = "Data Source={0},{1};Initial Catalog={2};User ID={3};Password={4}";
// windows信任连接;
private const string _msdbconnect_trusted = "server={0};database={1};Trusted_Connection=SSPI";
#endregion
#region 私有变量;
///
/// 数据库连接串;
///
private string connectionString = "";
private string connectionStringTrusted = "";
#endregion
#region 公共属性;
///
/// 数据库服务器;
///
public string DatabaseServer { get; set; } = "10.126.64.131";
///
/// 数据库账号;
///
public string DatabaseAccount { get; set; } = "XMUpdate";
///
/// 数据库密码;
///
public string DatabasePassword { get; set; } = "695Xm@123#";
///
/// 数据库名称;
///
public string DatabaseName { get; set; } = "MESOtherData";
///
/// 数据库端口号;
///
public uint DatabasePortNumber { get; set; } = 0;
///
/// 连接超时值;
///
public uint ConnectTimeout { get; set; } = 3000;
[JsonIgnore]
///
/// 是否设置了数据库连接参数;
///
public bool IsSetParameters { get; private set; } = false;
[JsonIgnore]
///
/// 数据库连接串;
///
public string ConnectionString
{
get
{
#if DEBUG
return connectionStringTrusted;
#else
if (IsSetParameters)
return connectionString;
else
{
SetConnectParameters();
return connectionString;
}
#endif
}
}
[JsonIgnore]
public string ConnectionStringTrusted
{
get
{
if (IsSetParameters)
return connectionStringTrusted;
else
{
SetConnectParameters();
return connectionStringTrusted;
}
}
}
#endregion
public void SetConnectParameters()
{
try
{
// 标记连接参数已设置;
IsSetParameters = true;
// 生成默认的连接串;
connectionString = DatabasePortNumber == 0
? string.Format(_msdbconnect, DatabaseServer, DatabaseName, DatabaseAccount, DatabasePassword)
: string.Format(_msdbconnect_port, DatabaseServer, DatabasePortNumber, DatabaseName, DatabaseAccount, DatabasePassword);
connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName);
}
catch
{
throw;
}
}
public void SetConnectParameters(string databaseServer, string databaseName, string databaseAccount, string databasePassword, uint databasePortNumber=0)
{
DatabaseServer = databaseServer;
DatabaseName = databaseName;
DatabaseAccount = databaseAccount;
DatabasePassword = databasePassword;
DatabasePortNumber = databasePortNumber;
// 标记连接参数已设置;
IsSetParameters = true;
try
{
// 生成默认的连接串;
connectionString = DatabasePortNumber == 0
? string.Format(_msdbconnect, DatabaseServer, DatabaseName, DatabaseAccount, DatabasePassword)
: string.Format(_msdbconnect_port, DatabaseServer, DatabasePortNumber, DatabaseName, DatabaseAccount, DatabasePassword);
connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName);
}
catch
{
throw;
}
}
}
}