using Microsoft.Extensions.Options;
using MySql.Data.MySqlClient;
using Repository.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
namespace Repository.Helper
{
///
/// Database 介面
///
public interface IDatabaseHelper
{
///
/// 取得連線
///
///
string GetMSSqlConnectionString();
string GetMySqlConnectionString();
}
public class DatabaseHelper : IDatabaseHelper
{
private MySqlDBConfig _mySqlDBConfig;
private MSSqlDBConfig _msSqlDBConfig;
public DatabaseHelper(IOptions dbConfig)
{
_mySqlDBConfig = dbConfig.Value.MySqlDBConfig;
_msSqlDBConfig = dbConfig.Value.MSSqlDBConfig;
}
public string GetMSSqlConnectionString()
{
EDFunction ed = new EDFunction();
var serverStr = ed.AESDecrypt(_msSqlDBConfig.Server);
var databaseStr = ed.AESDecrypt(_msSqlDBConfig.Database);
var rootStr = ed.AESDecrypt(_msSqlDBConfig.Root);
var passwordStr = ed.AESDecrypt(_msSqlDBConfig.Password);
var portStr = !string.IsNullOrEmpty(_msSqlDBConfig.Port) ? ed.AESDecrypt(_msSqlDBConfig.Port) : string.Empty;
string source = !string.IsNullOrEmpty(portStr) ? string.Join(",", serverStr, portStr) : serverStr;
var connStr = $"data source={source};initial catalog={databaseStr};User ID={rootStr};Password={passwordStr}";
//var conn = new SqlConnection(connStr);
return connStr;
}
public string GetMySqlConnectionString()
{
EDFunction ed = new EDFunction();
var serverStr = ed.AESDecrypt(_mySqlDBConfig.Server); //0.201
var portStr = ed.AESDecrypt(_mySqlDBConfig.Port); //
var databaseStr = ed.AESDecrypt(_mySqlDBConfig.Database); //
var rootStr = ed.AESDecrypt(_mySqlDBConfig.Root); //
var passwordStr = ed.AESDecrypt(_mySqlDBConfig.Password); //
//var serverStr = ed.AESEncrypt("192.168.0.201"); //192.168.0.201
//var portStr = ed.AESEncrypt("33306"); // 33306
//var databaseStr = ed.AESEncrypt("bims_mitsubishi"); // bims_wsp: IgYBsgG2VLKKxFb64j7LOA== ; bims_mitsubishi
//var rootStr = ed.AESEncrypt("bims"); // bims
//var passwordStr = ed.AESEncrypt("mjmdev_BIMS2022"); // mjmdev_BIMS2022
var connStr = $"server={serverStr};port={portStr};database={databaseStr};user={rootStr};password={passwordStr};charset=utf8;Allow User Variables=True;SslMode=Required;"; // 2024.04.09 SSLmode改成Required,改善重開機無法自動連上MYSQL的問題
//var conn = new MySqlConnection(connStr);
return connStr;
}
}
}