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