示例#1
0
        private async Task QueueListener_ResponseReceived(object sender, ResponseReceivedEventArgs e)
        {
            var iMessages = Counters.IncrementMessages();

            try
            {
                Counters.IncrementReceivingTime(e.Message.Header.Response.TotalTime);
                Core.Log.InfoDetail("Response message received with CorrelationId = {0} . Current messages processing = {1}", e.Message.CorrelationId, iMessages);
                if (ResponseReceived != null)
                {
                    await ResponseReceived.InvokeAsync(sender, e).ConfigureAwait(false);
                }
                if (MQueueServerEvents.ResponseReceived != null)
                {
                    await MQueueServerEvents.ResponseReceived.InvokeAsync(sender, e).ConfigureAwait(false);
                }
                Counters.DecrementMessages();
                Counters.IncrementTotalMessagesProccesed();
            }
            catch (Exception)
            {
                Counters.IncrementTotalExceptions();
                Counters.DecrementMessages();
                throw;
            }
        }
 protected Task OnResponseReceivedAsync(ResponseReceivedEventArgs responseReceived)
 => ResponseReceived?.InvokeAsync(this, responseReceived) ?? Task.CompletedTask;