Read Enova credentials from configuration file
This commit is contained in:
@@ -48,19 +48,8 @@ public sealed class ServiceSettings
|
||||
|
||||
public RuntimeSettings ResolveRuntimeSettings()
|
||||
{
|
||||
var enovaPassword = Environment.GetEnvironmentVariable(Enova.PasswordEnvironmentVariable);
|
||||
if (enovaPassword is null)
|
||||
{
|
||||
throw new ConfigurationException(
|
||||
$"Brak zmiennej środowiskowej {Enova.PasswordEnvironmentVariable} z hasłem operatora Enovy.");
|
||||
}
|
||||
|
||||
var connectionString = Environment.GetEnvironmentVariable(Sql.ConnectionStringEnvironmentVariable);
|
||||
if (string.IsNullOrWhiteSpace(connectionString))
|
||||
{
|
||||
throw new ConfigurationException(
|
||||
$"Brak zmiennej środowiskowej {Sql.ConnectionStringEnvironmentVariable} z connection stringiem SQL.");
|
||||
}
|
||||
var enovaPassword = Enova.Password
|
||||
?? throw new ConfigurationException("Parametr 'enova.password' jest wymagany.");
|
||||
|
||||
var installationPath = Path.GetFullPath(
|
||||
Environment.ExpandEnvironmentVariables(Enova.InstallationPath));
|
||||
@@ -72,7 +61,7 @@ public sealed class ServiceSettings
|
||||
Enova.DocumentDefinition,
|
||||
Enova.DefaultWarehouseCode,
|
||||
Enova.SaveMode),
|
||||
connectionString,
|
||||
Sql.ConnectionString,
|
||||
Sql.CommandTimeoutSeconds,
|
||||
ResolvePath(Diagnostics.LogDirectory),
|
||||
Diagnostics.LogPrefix);
|
||||
@@ -90,9 +79,9 @@ public sealed class ServiceSettings
|
||||
Require(Enova.InstallationPath, "enova.installationPath", errors);
|
||||
Require(Enova.Database, "enova.database", errors);
|
||||
Require(Enova.Operator, "enova.operator", errors);
|
||||
Require(Enova.PasswordEnvironmentVariable, "enova.passwordEnvironmentVariable", errors);
|
||||
RequirePresent(Enova.Password, "enova.password", errors);
|
||||
Require(Enova.DocumentDefinition, "enova.documentDefinition", errors);
|
||||
Require(Sql.ConnectionStringEnvironmentVariable, "sql.connectionStringEnvironmentVariable", errors);
|
||||
Require(Sql.ConnectionString, "sql.connectionString", errors);
|
||||
if (Sql.CommandTimeoutSeconds <= 0)
|
||||
{
|
||||
errors.Add("sql.commandTimeoutSeconds musi być większe od zera.");
|
||||
@@ -112,6 +101,14 @@ public sealed class ServiceSettings
|
||||
}
|
||||
}
|
||||
|
||||
private static void RequirePresent(string? value, string name, ICollection<string> errors)
|
||||
{
|
||||
if (value is null)
|
||||
{
|
||||
errors.Add($"Parametr '{name}' jest wymagany.");
|
||||
}
|
||||
}
|
||||
|
||||
private static string ResolvePath(string path) =>
|
||||
Path.IsPathRooted(path) ? Path.GetFullPath(path) : Path.GetFullPath(path, AppContext.BaseDirectory);
|
||||
}
|
||||
@@ -131,7 +128,7 @@ public sealed class EnovaSettings
|
||||
|
||||
public string Operator { get; init; } = "Administrator";
|
||||
|
||||
public string PasswordEnvironmentVariable { get; init; } = "SMARTB2B_ENOVA_PASSWORD";
|
||||
public string? Password { get; init; }
|
||||
|
||||
public string DocumentDefinition { get; init; } = "ZO";
|
||||
|
||||
@@ -142,7 +139,7 @@ public sealed class EnovaSettings
|
||||
|
||||
public sealed class SqlSettings
|
||||
{
|
||||
public string ConnectionStringEnvironmentVariable { get; init; } = "SMARTB2B_SQL_CONNECTION_STRING";
|
||||
public string ConnectionString { get; init; } = string.Empty;
|
||||
|
||||
public int CommandTimeoutSeconds { get; init; } = 30;
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
"installationPath": "C:\\Program Files (x86)\\Soneta\\enova365 2604.4.4",
|
||||
"database": "Firma demo",
|
||||
"operator": "Administrator",
|
||||
"passwordEnvironmentVariable": "SMARTB2B_ENOVA_PASSWORD",
|
||||
"password": "<hasło operatora>",
|
||||
"documentDefinition": "ZO",
|
||||
"defaultWarehouseCode": null,
|
||||
"saveMode": "Buffer"
|
||||
},
|
||||
"sql": {
|
||||
"connectionStringEnvironmentVariable": "SMARTB2B_SQL_CONNECTION_STRING",
|
||||
"connectionString": "Server=...;Database=...;User ID=...;Password=...;TrustServerCertificate=True",
|
||||
"commandTimeoutSeconds": 30
|
||||
},
|
||||
"diagnostics": {
|
||||
|
||||
Reference in New Issue
Block a user