protected virtual DispatcherAvailability CheckAvailability(IDispatchChannel <TKey> channel, ProcessingResult sendResult) { if (sendResult != ProcessingResult.Fail) { return(DispatcherAvailability.NotChecked); } DispatcherAvailability availability; try { availability = channel.CheckAvailability(); } catch (Exception ex) { availability = DispatcherAvailability.NotAvailable; _logger.LogError(ex, null); } channel.CountAvailabilityCheck(availability); _monitor.DispatchChannelAvailabilityChecked(channel, availability); return(availability); }