using DotNetty.Transport.Channels; using HybirdFrameworkCore.Autofac.Attribute; using log4net; using Service.Charger.Client; using Service.Charger.Common; using Service.Charger.Msg.Charger.Resp; namespace Service.Charger.Handler { /// /// 充放电机响应远程启动充电 /// /// 1,保存日志到log /// 2,保存启动结果,状态等到ChargerManager /// /// [Order(8)] [Scope("InstancePerDependency")] public class RemoteStartChargingResHandler : SimpleChannelInboundHandler, IBaseHandler { private static readonly ILog Log = LogManager.GetLogger(typeof(RemoteStartChargingResHandler)); protected override void ChannelRead0(IChannelHandlerContext ctx, RemoteStartChargingRes msg) { if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) { Log.Info($"receive {msg} from {sn}"); if (msg.Result == 0) { client.IsStopped = false; client.ChargingStatus = (int)ChargingStatus.StartChargingSuccess; client.ChargingStartTime = DateTime.Now; } else { client.ChargingStatus = (int)ChargingStatus.StartChargingFailed; client.ChargingStartTime = Convert.ToDateTime("2000-1-1"); } } else { client.ChargingStatus = (int)ChargingStatus.StartChargingFailed; } } } }