private async Task MarkServiceHealth(IChannelHandlerContext context)
 {
     var iPEndPoint     = context.Channel.RemoteAddress as IPEndPoint;
     var ipAddressModel = new IpAddressModel(iPEndPoint.Address.MapToIPv4().ToString(),
                                             iPEndPoint.Port);
     await _healthCheckService.MarkHealth(ipAddressModel);
 }
 private async Task MarkServiceProviderHealth(IChannelHandlerContext context)
 {
     var providerServerEndpoint = context.Channel.RemoteAddress as IPEndPoint;
     var providerServerAddress  = new IpAddressModel(providerServerEndpoint.Address.MapToIPv4().ToString(),
                                                     providerServerEndpoint.Port);
     await _healthCheckService.MarkHealth(providerServerAddress);
 }
        public async override void UserEventTriggered(IChannelHandlerContext context, object evt)
        {
            if (evt is IdleStateEvent @event)
            {
                if (@event.State == IdleState.ReaderIdle)
                {
                    var iPEndPoint     = context.Channel.RemoteAddress as IPEndPoint;
                    var ipAddressModel = new IpAddressModel(iPEndPoint.Address.MapToIPv4().ToString(),
                                                            iPEndPoint.Port);
                    await _healthCheckService.MarkHealth(ipAddressModel);

                    if (context.Channel.Active)
                    {
                        await context.Channel.CloseAsync();
                    }
                }
            }
            else
            {
                base.UserEventTriggered(context, evt);
            }
        }