From c6050e6714acdd3694225320d0f350aaf1800707 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Wed, 29 Jan 2025 07:30:17 +0100 Subject: [PATCH] Migration to use the new ERI client --- .../Dialogs/DataSourceERI_V1Dialog.razor | 2 +- .../Dialogs/DataSourceERI_V1Dialog.razor.cs | 55 +++++++++++-------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor index 64e307b9..ac40ffa5 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor +++ b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor @@ -1,4 +1,4 @@ -@using ERI_Client.V1 +@using AIStudio.Tools.ERIClient.DataModel diff --git a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs index 1e4eaf7d..aaa4dac1 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs @@ -1,9 +1,10 @@ +using AIStudio.Assistants.ERI; using AIStudio.Settings; using AIStudio.Settings.DataModel; +using AIStudio.Tools.ERIClient; +using AIStudio.Tools.ERIClient.DataModel; using AIStudio.Tools.Validation; -using ERI_Client.V1; - using Microsoft.AspNetCore.Components; // ReSharper disable InconsistentNaming @@ -43,7 +44,6 @@ public partial class DataSourceERI_V1Dialog : ComponentBase, ISecretId private string[] dataIssues = []; private string dataSecretStorageIssue = string.Empty; private string dataEditingPreviousInstanceName = string.Empty; - private HttpClient? httpClient; private List availableAuthMethods = []; private bool connectionTested; private bool connectionSuccessfulTested; @@ -167,31 +167,38 @@ public partial class DataSourceERI_V1Dialog : ComponentBase, ISecretId { try { - this.httpClient = new HttpClient + var cts = new CancellationTokenSource(TimeSpan.FromSeconds(14)); + var dataSource = new DataSourceERI_V1 { - BaseAddress = new Uri($"{this.dataHostname}:{this.dataPort}"), - Timeout = TimeSpan.FromSeconds(5), + Hostname = this.dataHostname, + Port = this.dataPort }; - - using (this.httpClient) + + using var client = ERIClientFactory.Get(ERIVersion.V1, dataSource); + if(client is null) { - var client = new Client(this.httpClient); - var authSchemes = await client.GetAuthMethodsAsync(); - if (authSchemes is null) - { - await this.form.Validate(); - - Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1); - this.dataIssues[^1] = "Failed to connect to the ERI v1 server. The server did not respond."; - return; - } - - this.availableAuthMethods = authSchemes.Select(n => n.AuthMethod).ToList(); - - this.connectionTested = true; - this.connectionSuccessfulTested = true; - this.Logger.LogInformation("Connection to the ERI v1 server was successful tested."); + await this.form.Validate(); + + Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1); + this.dataIssues[^1] = "Failed to connect to the ERI v1 server. The server is not supported."; + return; } + + var authSchemes = await client.GetAuthMethodsAsync(cts.Token); + if (!authSchemes.Successful) + { + await this.form.Validate(); + + Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1); + this.dataIssues[^1] = authSchemes.Message; + return; + } + + this.availableAuthMethods = authSchemes.Data!.Select(n => n.AuthMethod).ToList(); + + this.connectionTested = true; + this.connectionSuccessfulTested = true; + this.Logger.LogInformation("Connection to the ERI v1 server was successful tested."); } catch (Exception e) {