2020-06-20 03:05:51 +02:00
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace Geekbot.net.Database
|
2018-05-09 18:51:53 +02:00
|
|
|
|
{
|
|
|
|
|
public class SqlConnectionString
|
|
|
|
|
{
|
2018-05-10 00:00:51 +02:00
|
|
|
|
public string Host { get; set; }
|
|
|
|
|
public string Port { get; set; }
|
|
|
|
|
public string Database { get; set; }
|
|
|
|
|
public string Username { get; set; }
|
|
|
|
|
public string Password { get; set; }
|
2020-06-19 21:46:19 +02:00
|
|
|
|
public bool RequireSsl { get; set; }
|
|
|
|
|
public bool TrustServerCertificate { get; set; }
|
2020-06-20 03:05:51 +02:00
|
|
|
|
public bool RedshiftCompatibility { get; set; }
|
2018-05-09 18:51:53 +02:00
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
2020-06-20 03:05:51 +02:00
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
|
sb.Append("Application Name=Geekbot;");
|
|
|
|
|
|
|
|
|
|
sb.Append($"Host={Host};");
|
|
|
|
|
sb.Append($"Port={Port};");
|
|
|
|
|
sb.Append($"Database={Database};");
|
|
|
|
|
sb.Append($"Username={Username};");
|
|
|
|
|
sb.Append($"Password={Password};");
|
|
|
|
|
|
2020-06-19 21:46:19 +02:00
|
|
|
|
var sslMode = RequireSsl ? "Require" : "Prefer";
|
2020-06-20 03:05:51 +02:00
|
|
|
|
sb.Append($"SSL Mode={sslMode};");
|
|
|
|
|
sb.Append($"Trust Server Certificate={TrustServerCertificate.ToString()};");
|
|
|
|
|
|
|
|
|
|
if (RedshiftCompatibility)
|
|
|
|
|
{
|
|
|
|
|
sb.Append("Server Compatibility Mode=Redshift");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return sb.ToString();
|
2018-05-09 18:51:53 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|