Improved data source port handling

This commit is contained in:
Thorsten Sommer 2024-12-27 13:01:30 +01:00
parent 75b11ff1a3
commit 75705eb976
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
3 changed files with 24 additions and 2 deletions

View File

@ -90,7 +90,7 @@
<div class="mb-3"> <div class="mb-3">
<MudStack Row="@true"> <MudStack Row="@true">
<MudTextField T="string" @bind-Text="@this.dataSourceHostname" Label="Data source: hostname" Validation="@this.ValidateHostname" Variant="Variant.Outlined" Margin="Margin.Dense" UserAttributes="@USER_INPUT_ATTRIBUTES"/> <MudTextField T="string" @bind-Text="@this.dataSourceHostname" Label="Data source: hostname" Validation="@this.ValidateHostname" Variant="Variant.Outlined" Margin="Margin.Dense" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
<MudNumericField Label="Data source: port" Immediate="@true" Min="1" Max="65535" Validation="@this.ValidatePort" @bind-Value="@this.dataSourcePort" Variant="Variant.Outlined" Margin="Margin.Dense"/> <MudNumericField Label="Data source: port" Immediate="@true" Min="1" Max="65535" Validation="@this.ValidatePort" @bind-Value="@this.dataSourcePort" Variant="Variant.Outlined" Margin="Margin.Dense" OnKeyUp="@(() => this.DataSourcePortWasTyped())"/>
</MudStack> </MudStack>
@if (this.dataSourcePort < 1024) @if (this.dataSourcePort < 1024)
{ {

View File

@ -58,6 +58,7 @@ public partial class AssistantERI : AssistantBaseCore
this.otherDataSource = string.Empty; this.otherDataSource = string.Empty;
this.dataSourceHostname = string.Empty; this.dataSourceHostname = string.Empty;
this.dataSourcePort = null; this.dataSourcePort = null;
this.userTypedPort = false;
this.selectedAuthenticationMethods = []; this.selectedAuthenticationMethods = [];
this.authDescription = string.Empty; this.authDescription = string.Empty;
this.selectedOperatingSystem = OperatingSystem.NONE; this.selectedOperatingSystem = OperatingSystem.NONE;
@ -83,6 +84,7 @@ public partial class AssistantERI : AssistantBaseCore
this.otherDataSource = this.SettingsManager.ConfigurationData.ERI.PreselectedOtherDataSource; this.otherDataSource = this.SettingsManager.ConfigurationData.ERI.PreselectedOtherDataSource;
this.dataSourceHostname = this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourceHostname; this.dataSourceHostname = this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourceHostname;
this.dataSourcePort = this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort; this.dataSourcePort = this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort;
this.userTypedPort = this.SettingsManager.ConfigurationData.ERI.UserTypedPort;
var authMethods = new HashSet<Auth>(this.SettingsManager.ConfigurationData.ERI.PreselectedAuthMethods); var authMethods = new HashSet<Auth>(this.SettingsManager.ConfigurationData.ERI.PreselectedAuthMethods);
this.selectedAuthenticationMethods = authMethods; this.selectedAuthenticationMethods = authMethods;
@ -119,6 +121,7 @@ public partial class AssistantERI : AssistantBaseCore
this.SettingsManager.ConfigurationData.ERI.PreselectedOtherDataSource = this.otherDataSource; this.SettingsManager.ConfigurationData.ERI.PreselectedOtherDataSource = this.otherDataSource;
this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourceHostname = this.dataSourceHostname; this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourceHostname = this.dataSourceHostname;
this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort = this.dataSourcePort; this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort = this.dataSourcePort;
this.SettingsManager.ConfigurationData.ERI.UserTypedPort = this.userTypedPort;
this.SettingsManager.ConfigurationData.ERI.PreselectedAuthMethods = [..this.selectedAuthenticationMethods]; this.SettingsManager.ConfigurationData.ERI.PreselectedAuthMethods = [..this.selectedAuthenticationMethods];
this.SettingsManager.ConfigurationData.ERI.PreselectedAuthDescription = this.authDescription; this.SettingsManager.ConfigurationData.ERI.PreselectedAuthDescription = this.authDescription;
this.SettingsManager.ConfigurationData.ERI.PreselectedOperatingSystem = this.selectedOperatingSystem; this.SettingsManager.ConfigurationData.ERI.PreselectedOperatingSystem = this.selectedOperatingSystem;
@ -140,6 +143,7 @@ public partial class AssistantERI : AssistantBaseCore
private string dataSourceProductName = string.Empty; private string dataSourceProductName = string.Empty;
private string dataSourceHostname = string.Empty; private string dataSourceHostname = string.Empty;
private int? dataSourcePort; private int? dataSourcePort;
private bool userTypedPort;
private IEnumerable<Auth> selectedAuthenticationMethods = new HashSet<Auth>(); private IEnumerable<Auth> selectedAuthenticationMethods = new HashSet<Auth>();
private string authDescription = string.Empty; private string authDescription = string.Empty;
private OperatingSystem selectedOperatingSystem = OperatingSystem.NONE; private OperatingSystem selectedOperatingSystem = OperatingSystem.NONE;
@ -268,10 +272,23 @@ public partial class AssistantERI : AssistantBaseCore
return null; return null;
} }
private void DataSourcePortWasTyped()
{
this.userTypedPort = true;
}
private void DataSourceWasChanged() private void DataSourceWasChanged()
{ {
if(this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort is not null) if (this.selectedDataSource is DataSources.NONE)
{
this.SettingsManager.ConfigurationData.ERI.PreselectedDataSourcePort = null;
this.dataSourcePort = null;
this.userTypedPort = false;
return;
}
if(this.userTypedPort)
return; return;
// //

View File

@ -67,6 +67,11 @@ public sealed class DataERI
/// </summary> /// </summary>
public int? PreselectedDataSourcePort { get; set; } public int? PreselectedDataSourcePort { get; set; }
/// <summary>
/// Did the user type the port number?
/// </summary>
public bool UserTypedPort { get; set; } = false;
/// <summary> /// <summary>
/// Preselect any authentication methods? /// Preselect any authentication methods?
/// </summary> /// </summary>