|
|
|
@ -14,14 +14,17 @@ namespace CoreAgent.Application.Handlers.CellularNetwork; |
|
|
|
public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGeneralCellularNetworkCommand, ApiActionResult<NetworkStatus>> |
|
|
|
{ |
|
|
|
private readonly IGeneralCellularNetworkService _cellularNetworkService; |
|
|
|
private readonly ILogger<StartCellularNetworkCommandHandler> _logger; |
|
|
|
private readonly ILogger<StartGeneralCellularNetworkCommandHandler> _logger; |
|
|
|
private readonly IRanAPICommandHandlerFactory _ranAPICommandHandlerFactory; |
|
|
|
|
|
|
|
public StartGeneralCellularNetworkCommandHandler( |
|
|
|
IGeneralCellularNetworkService cellularNetworkService, |
|
|
|
ILogger<StartCellularNetworkCommandHandler> logger) |
|
|
|
ILogger<StartGeneralCellularNetworkCommandHandler> logger, |
|
|
|
IRanAPICommandHandlerFactory ranAPICommandHandlerFactory) |
|
|
|
{ |
|
|
|
_cellularNetworkService = cellularNetworkService; |
|
|
|
_logger = logger; |
|
|
|
_ranAPICommandHandlerFactory = ranAPICommandHandlerFactory ?? throw new ArgumentNullException(nameof(ranAPICommandHandlerFactory)); |
|
|
|
} |
|
|
|
|
|
|
|
public async Task<ApiActionResult<NetworkStatus>> Handle(StartGeneralCellularNetworkCommand request, CancellationToken cancellationToken) |
|
|
|
@ -29,12 +32,13 @@ public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGe |
|
|
|
try |
|
|
|
{ |
|
|
|
_logger.LogInformation("正在启动蜂窝网络配置: {ConfigKey}", request?.CellularNetwork?.RuntimeCode); |
|
|
|
|
|
|
|
|
|
|
|
// 启动网络
|
|
|
|
var result = await _cellularNetworkService.StartAsync(request.CellularNetwork); |
|
|
|
|
|
|
|
|
|
|
|
if (result.IsSuccess) |
|
|
|
{ |
|
|
|
_ = Task.Run(() => SetBcchLogStatusAsync(), cancellationToken); |
|
|
|
_logger.LogInformation("蜂窝网络配置 {ConfigKey} 启动成功", request?.CellularNetwork?.RuntimeCode); |
|
|
|
return ApiActionResult<NetworkStatus>.Ok(result.NetworkStatus, "蜂窝网络启动成功"); |
|
|
|
} |
|
|
|
@ -56,4 +60,51 @@ public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGe |
|
|
|
HttpStatusCode.InternalServerError); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置BCCH日志状态
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>任务</returns>
|
|
|
|
private async Task SetBcchLogStatusAsync() |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
// 使用工厂创建处理器实例
|
|
|
|
var ranApiCommandHandler = _ranAPICommandHandlerFactory.CreateHandler(); |
|
|
|
|
|
|
|
// 设置BCCH日志状态为true
|
|
|
|
_logger.LogInformation("开始设置BCCH日志状态为true"); |
|
|
|
var setTrueResult = await ranApiCommandHandler.SetBcchLogStatusAsync(true); |
|
|
|
|
|
|
|
if (setTrueResult) |
|
|
|
{ |
|
|
|
_logger.LogInformation("BCCH日志状态设置为true成功"); |
|
|
|
|
|
|
|
// 等待200秒
|
|
|
|
_logger.LogInformation("等待200秒后设置BCCH日志状态为false"); |
|
|
|
await Task.Delay(TimeSpan.FromSeconds(200)); |
|
|
|
|
|
|
|
// 设置BCCH日志状态为false
|
|
|
|
_logger.LogInformation("200秒后开始设置BCCH日志状态为false"); |
|
|
|
var setFalseResult = await ranApiCommandHandler.SetBcchLogStatusAsync(false); |
|
|
|
|
|
|
|
if (setFalseResult) |
|
|
|
{ |
|
|
|
_logger.LogInformation("BCCH日志状态设置为false成功"); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
_logger.LogWarning("BCCH日志状态设置为false失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
_logger.LogWarning("BCCH日志状态设置为true失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
_logger.LogError(ex, "设置BCCH日志状态时发生异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |