From d216edd0e9931d71664f33e625cff6d8131a0fad Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 13 三月 2026 16:00:40 +0800
Subject: [PATCH] 重构: 实现前后端分离架构

---
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Details.cshtml.cs |   34 ++++++++++++++--------------------
 1 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Details.cshtml.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Details.cshtml.cs
index dc18dc6..d901dac 100644
--- a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Details.cshtml.cs
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Details.cshtml.cs
@@ -1,21 +1,23 @@
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc.RazorPages;
 using WIDESEAWCS_S7Simulator.Core.Entities;
+using WIDESEAWCS_S7Simulator.Web.Services;
 
 namespace WIDESEAWCS_S7Simulator.Web.Pages;
 
 /// <summary>
 /// 瀹炰緥璇︽儏椤�
 /// </summary>
-public class DetailsModel : PageModel
+public class DetailsModel : BasePageModel
 {
     private readonly ILogger<DetailsModel> _logger;
-    private readonly IHttpClientFactory _httpClientFactory;
+    private readonly ApiHttpClient _apiClient;
 
-    public DetailsModel(ILogger<DetailsModel> logger, IHttpClientFactory httpClientFactory)
+    public DetailsModel(ILogger<DetailsModel> logger, IConfiguration configuration, ApiHttpClient apiClient)
+        : base(configuration)
     {
         _logger = logger;
-        _httpClientFactory = httpClientFactory;
+        _apiClient = apiClient;
     }
 
     public InstanceState? Instance { get; private set; }
@@ -31,26 +33,18 @@
 
         try
         {
-            var httpClient = _httpClientFactory.CreateClient();
-            httpClient.BaseAddress = new Uri($"{Request.Scheme}://{Request.Host}");
+            Instance = await _apiClient.GetInstanceAsync(id);
 
-            var response = await httpClient.GetAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(id)}");
-
-            if (response.IsSuccessStatusCode)
-            {
-                Instance = await response.Content.ReadFromJsonAsync<InstanceState>();
-
-                // Load clients
-                var clientsResponse = await httpClient.GetAsync($"/api/instances/{Uri.EscapeDataString(id)}/Clients");
-                if (clientsResponse.IsSuccessStatusCode)
-                {
-                    Clients = await clientsResponse.Content.ReadFromJsonAsync<List<S7ClientConnection>>() ?? new();
-                }
-            }
-            else if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
+            if (Instance == null)
             {
                 return NotFound($"瀹炰緥 \"{id}\" 涓嶅瓨鍦�");
             }
+
+            // 瀹㈡埛绔俊鎭凡鍖呭惈鍦� InstanceState 涓�
+            if (Instance.Clients != null)
+            {
+                Clients = Instance.Clients;
+            }
         }
         catch (HttpRequestException ex)
         {

--
Gitblit v1.9.3