75 lines
2.2 KiB
C#
75 lines
2.2 KiB
C#
|
|
using WcsMain.Common;
|
|||
|
|
|
|||
|
|
namespace WcsMain.StartAction;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 一个类,用于触发启动关闭事件
|
|||
|
|
/// </summary>
|
|||
|
|
public class HostService(ServiceStart serverStart) : IHostedLifecycleService
|
|||
|
|
{
|
|||
|
|
private readonly ServiceStart _serverStart = serverStart;
|
|||
|
|
|
|||
|
|
public Task StartAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.CompletedTask;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Task StartingAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.CompletedTask;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Task StartedAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.Run(() =>
|
|||
|
|
{
|
|||
|
|
string? loadingResult = LoadingRunningData.GetResult();
|
|||
|
|
if (!string.IsNullOrEmpty(loadingResult))
|
|||
|
|
{
|
|||
|
|
ConsoleLog.Error($"【异常】启动加载运行文件出错,WCS功能受到限制,您可以检查网络连接后重新启动或者联系我们,参考信息:{loadingResult}");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
ConsoleLog.Info("WCS服务启动中,请稍后...");
|
|||
|
|
var apiOnly = CommonData.Settings.ApplicationConfig.ApiOnly;
|
|||
|
|
if (apiOnly == null)
|
|||
|
|
{
|
|||
|
|
ConsoleLog.Error("【异常】配置文件加载失败,WCS 启动失败");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if ((bool)apiOnly)
|
|||
|
|
{
|
|||
|
|
ConsoleLog.Warning("【警告】当前运行在 【仅 API】 模式下");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
_serverStart.Start();
|
|||
|
|
}
|
|||
|
|
ConsoleLog.Success("WCS服务启动完成");
|
|||
|
|
}, cancellationToken);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 关闭事件
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="cancellationToken"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public Task StopAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.CompletedTask;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Task StoppedAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.Run(() =>
|
|||
|
|
{
|
|||
|
|
ConsoleLog.Info("WCS服务已经关闭");
|
|||
|
|
}, cancellationToken);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Task StoppingAsync(CancellationToken cancellationToken)
|
|||
|
|
{
|
|||
|
|
return Task.CompletedTask;
|
|||
|
|
}
|
|||
|
|
}
|