diff --git a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
index cfba6a5..eba03ba 100644
--- a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
+++ b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
@@ -55,10 +55,43 @@
-
+
+
+ @if (!_showBackup)
+ {
+
+
+
+ }
+ else
+ {
+
+
+
+
+
+
+
+
+
+
+
+
Retries on active endpoint before switching to backup (default: 3)
+
+ }
@if (_formError != null)
{
@_formError
@@ -83,6 +116,9 @@
private string _formName = string.Empty;
private string _formProtocol = string.Empty;
private string? _formConfiguration;
+ private bool _showBackup;
+ private string? _formBackupConfiguration;
+ private int _formFailoverRetryCount = 3;
private string? _formError;
protected override async Task OnInitializedAsync()
@@ -101,6 +137,9 @@
_formName = _editingConnection.Name;
_formProtocol = _editingConnection.Protocol;
_formConfiguration = _editingConnection.PrimaryConfiguration;
+ _formBackupConfiguration = _editingConnection.BackupConfiguration;
+ _formFailoverRetryCount = _editingConnection.FailoverRetryCount;
+ _showBackup = _editingConnection.BackupConfiguration != null;
}
}
catch (Exception ex)
@@ -125,13 +164,17 @@
_editingConnection.Name = _formName.Trim();
_editingConnection.Protocol = _formProtocol;
_editingConnection.PrimaryConfiguration = _formConfiguration?.Trim();
+ _editingConnection.BackupConfiguration = _showBackup ? _formBackupConfiguration?.Trim() : null;
+ _editingConnection.FailoverRetryCount = _showBackup ? _formFailoverRetryCount : 3;
await SiteRepository.UpdateDataConnectionAsync(_editingConnection);
}
else
{
var conn = new DataConnection(_formName.Trim(), _formProtocol, _formSiteId)
{
- PrimaryConfiguration = _formConfiguration?.Trim()
+ PrimaryConfiguration = _formConfiguration?.Trim(),
+ BackupConfiguration = _showBackup ? _formBackupConfiguration?.Trim() : null,
+ FailoverRetryCount = _showBackup ? _formFailoverRetryCount : 3
};
await SiteRepository.AddDataConnectionAsync(conn);
}
@@ -144,6 +187,13 @@
}
}
+ private void RemoveBackup()
+ {
+ _showBackup = false;
+ _formBackupConfiguration = null;
+ _formFailoverRetryCount = 3;
+ }
+
private void GoBack()
{
NavigationManager.NavigateTo("/admin/data-connections");
diff --git a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnections.razor b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnections.razor
index bca9d3b..3417a62 100644
--- a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnections.razor
+++ b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnections.razor
@@ -32,7 +32,8 @@
Name |
Protocol |
Site |
- Configuration |
+ Primary Config |
+ Backup Config |
Actions |
@@ -40,7 +41,7 @@
@if (_connections.Count == 0)
{
- | No data connections configured. |
+ No data connections configured. |
}
@foreach (var conn in _connections)
@@ -51,6 +52,7 @@
@conn.Protocol |
@(_siteLookup.GetValueOrDefault(conn.SiteId)?.Name ?? $"Site {conn.SiteId}") |
@(conn.PrimaryConfiguration ?? "—") |
+ @(conn.BackupConfiguration ?? "—") |
|