✨ feat(*): 添加管理员解锁与 SFTP 探活能力
* 新增管理员解锁弹窗、手动操作权限控制与倒计时状态 * 支持系统设置页测试 SFTP 连接,并在启动时执行探活 * 补充设计时服务、全局异常兜底与相关单元测试
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using AxiOmron.PcbCheck.Models;
|
||||
using AxiOmron.PcbCheck.Options;
|
||||
using AxiOmron.PcbCheck.Services.Interfaces;
|
||||
|
||||
namespace AxiOmron.PcbCheck.DesignTime;
|
||||
|
||||
/// <summary>
|
||||
/// 为设计器提供 SFTP 测试结果的设计时服务。
|
||||
/// </summary>
|
||||
public sealed class DesignTimeSftpLookupService : ISftpLookupService
|
||||
{
|
||||
/// <summary>
|
||||
/// 返回设计时文件校验结果。
|
||||
/// </summary>
|
||||
/// <param name="barcode">条码。</param>
|
||||
/// <param name="cancellationToken">取消令牌。</param>
|
||||
/// <returns>固定设计时结果。</returns>
|
||||
public Task<SftpCheckOutcome> CheckFileAsync(string barcode, CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.FromResult(new SftpCheckOutcome
|
||||
{
|
||||
Exists = true,
|
||||
ConnectionSucceeded = true,
|
||||
MatchedFilePath = $"/pcb/{barcode}.txt"
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回设计时连接测试结果。
|
||||
/// </summary>
|
||||
/// <param name="options">SFTP 配置。</param>
|
||||
/// <param name="cancellationToken">取消令牌。</param>
|
||||
/// <returns>固定成功结果。</returns>
|
||||
public Task<SftpConnectionTestOutcome> TestConnectionAsync(SftpOptions? options, CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.FromResult(new SftpConnectionTestOutcome
|
||||
{
|
||||
IsSuccess = true,
|
||||
ConnectionSucceeded = true,
|
||||
RootPathAccessible = true,
|
||||
StatusMessage = "设计时 SFTP 连接成功。"
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user