6 changed files with 91 additions and 107 deletions
@ -0,0 +1,16 @@ |
|||||
|
using CoreAgent.Domain.Models.Common; |
||||
|
using CoreAgent.Domain.Models.Network; |
||||
|
using MediatR; |
||||
|
|
||||
|
namespace CoreAgent.Application.Commands.CellularNetwork; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 启动蜂窝网络命令
|
||||
|
/// </summary>
|
||||
|
public class StartGeneralCellularNetworkCommand : IRequest<ApiActionResult<NetworkStatus>> |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 网络配置键
|
||||
|
/// </summary>
|
||||
|
public CellularNetworkConfiguration CellularNetwork { get; set; } |
||||
|
} |
@ -0,0 +1,59 @@ |
|||||
|
using CoreAgent.Application.Commands.CellularNetwork; |
||||
|
using CoreAgent.Domain.Interfaces.Network; |
||||
|
using CoreAgent.Domain.Models.Common; |
||||
|
using CoreAgent.Domain.Models.Network; |
||||
|
using MediatR; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using System.Net; |
||||
|
|
||||
|
namespace CoreAgent.Application.Handlers.CellularNetwork; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 启动蜂窝网络命令处理器
|
||||
|
/// </summary>
|
||||
|
public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGeneralCellularNetworkCommand, ApiActionResult<NetworkStatus>> |
||||
|
{ |
||||
|
private readonly IGeneralCellularNetworkService _cellularNetworkService; |
||||
|
private readonly ILogger<StartCellularNetworkCommandHandler> _logger; |
||||
|
|
||||
|
public StartGeneralCellularNetworkCommandHandler( |
||||
|
IGeneralCellularNetworkService cellularNetworkService, |
||||
|
ILogger<StartCellularNetworkCommandHandler> logger) |
||||
|
{ |
||||
|
_cellularNetworkService = cellularNetworkService; |
||||
|
_logger = logger; |
||||
|
} |
||||
|
|
||||
|
public async Task<ApiActionResult<NetworkStatus>> Handle(StartGeneralCellularNetworkCommand request, CancellationToken cancellationToken) |
||||
|
{ |
||||
|
try |
||||
|
{ |
||||
|
_logger.LogInformation("正在启动蜂窝网络配置: {ConfigKey}", request?.CellularNetwork?.RuntimeCode); |
||||
|
|
||||
|
// 启动网络
|
||||
|
var result = await _cellularNetworkService.StartAsync(request.CellularNetwork); |
||||
|
|
||||
|
if (result.IsSuccess) |
||||
|
{ |
||||
|
_logger.LogInformation("蜂窝网络配置 {ConfigKey} 启动成功", request?.CellularNetwork?.RuntimeCode); |
||||
|
return ApiActionResult<NetworkStatus>.Ok(result.NetworkStatus, "蜂窝网络启动成功"); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
_logger.LogWarning("蜂窝网络配置 {ConfigKey} 启动失败: {Error}", request?.CellularNetwork?.RuntimeCode, result.ErrorMessage); |
||||
|
return ApiActionResult<NetworkStatus>.Error( |
||||
|
result.ErrorMessage, |
||||
|
"NETWORK_START_ERROR", |
||||
|
HttpStatusCode.BadRequest); |
||||
|
} |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
_logger.LogError(ex, "启动蜂窝网络配置 {ConfigKey} 失败", request?.CellularNetwork?.RuntimeCode); |
||||
|
return ApiActionResult<NetworkStatus>.Error( |
||||
|
$"启动蜂窝网络失败: {ex.Message}", |
||||
|
"INTERNAL_ERROR", |
||||
|
HttpStatusCode.InternalServerError); |
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue