123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- using FISLib.Connect;
- using FISLib.Test;
- using System;
- using Vinno.FIS.Sonopost.Features.Network;
- using Vinno.FIS.Sonopost.Managers.Interfaces;
- using Vinno.FIS.Sonopost.Settings;
- using Vinno.IUS.Common.Log;
- using Vinno.IUS.Common.Utilities;
- using JsonHelper = Vinno.FIS.Sonopost.Helpers.JsonHelper;
- namespace Vinno.FIS.Sonopost.Managers
- {
- internal class TestManager : SonopostManager, ITestManager
- {
- private readonly ILoginManager _loginManager;
- private readonly ITestService _fisTestService;
- private readonly IConfigManager _configManager;
- public ServerNetworkCheckProgress CurrentProgress { get; private set; }
- public bool IsRunning { get; private set; }
- public TestManager()
- {
- _configManager = AppManager.Instance.GetManager<IConfigManager>();
- _loginManager = AppManager.Instance.GetManager<ILoginManager>();
- _fisTestService = AppManager.Instance.GetManager<IFISManager>().FISTestService;
- _fisTestService.TestStatusChanged += OnTestStatusChanged;
- _fisTestService.TestFinished += OnTestFinished;
- }
- public void Run()
- {
- Logger.WriteLineInfo($"Test Manager Run Invoke");
- CurrentProgress = new ServerNetworkCheckProgress();
- CurrentProgress.Network.Status = ServerNetworkCheckStatus.Handling;
- var ultrasoundMachineInfo = AppManager.Instance.GetManager<IFISManager>().UltrasoundMachineInfo;
- _fisTestService.CreateVCloudService(_configManager.VCloudServerAddress, _configManager.VCloudServerPort, ultrasoundMachineInfo.USSoftwareVersion, null, ultrasoundMachineInfo.USScreenWidth, ultrasoundMachineInfo.USScreenHeight, ultrasoundMachineInfo.DeviceType);
- var userName = DesBuilder.Decrypt(SonopostUserDefinedSettings.Instance.ServerSetting.UserName);
- _fisTestService.Excute(true, true, _loginManager.DeviceStatus == DeviceStatus.Logon ? userName : null);
- IsRunning = true;
- }
- public void Stop()
- {
- Logger.WriteLineInfo($"Test Manager Stop Invoke");
- _fisTestService.StopTest();
- _fisTestService.CloseVCloudService();
- IsRunning = false;
- }
- private void OnTestStatusChanged(object sender, FISVCloudServiceTestResult e)
- {
- Logger.WriteLineInfo($"Test Manager OnTestStatusChanged :{JsonHelper.ToJson(e)}");
- if (e.TestItemId.Equals(CurrentProgress.Network.Key))
- {
- HandleEachStep(e, CurrentProgress.Network);
- }
- else if (e.TestItemId.Equals(CurrentProgress.CloudServer.Key))
- {
- HandleEachStep(e, CurrentProgress.CloudServer);
- }
- else if (e.TestItemId.Equals(CurrentProgress.RemedicalService.Key))
- {
- HandleEachStep(e, CurrentProgress.RemedicalService);
- }
- else if (e.TestItemId.Equals(CurrentProgress.LiveServer.Key))
- {
- HandleEachStep(e, CurrentProgress.LiveServer);
- }
- }
- private void HandleEachStep(FISVCloudServiceTestResult e, ServerNetworkCheckStep current)
- {
- if (FISVCloudTestItemStatus.TestDone == e.Status)
- {
- current.Status = ServerNetworkCheckStatus.Success;
- }
- else if (FISVCloudTestItemStatus.TestBeginned == e.Status)
- {
- current.Status = ServerNetworkCheckStatus.Handling;
- }
- else
- {
- current.Status = ServerNetworkCheckStatus.Fail;
- current.ErrorMessage = e.ErrorMessage;
- }
- }
- private void OnTestFinished(object sender, EventArgs e)
- {
- Logger.WriteLineInfo($"Test Manager OnTestFinished ");
- _fisTestService.CloseVCloudService();
- IsRunning = false;
- }
- public override void DoDispose()
- {
- try
- {
- _fisTestService.TestStatusChanged -= OnTestStatusChanged;
- _fisTestService.TestFinished -= OnTestFinished;
- }
- catch (Exception ex)
- {
- Logger.WriteLineError($"TestManager DoDispose Error:{ex}");
- }
- base.DoDispose();
- }
- }
- }
|