コード例 #1
0
        private void OnConsumerReceived(object sender, BasicDeliverEventArgs e)
        {
            Byte[] body                  = null;
            string messageJson           = null;
            ActionBenefitMessage message = null;
            string exchangeName          = null;

            try
            {
                exchangeName = e.Exchange;
                body         = e.Body.ToArray();
                messageJson  = Encoding.UTF8.GetString(body);
                message      = JsonConvert.DeserializeObject <ActionBenefitMessage>(messageJson);
                HandleMessage(message, exchangeName);
                _channel.BasicAck(e.DeliveryTag, false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                _channel.BasicReject(e.DeliveryTag, false);
                using (var scope = _service.CreateScope())
                {
                    IPharmacyService pharmacyService = scope.ServiceProvider.GetRequiredService <IPharmacyService>();
                    PharmacySystem   pharmacySystem  = pharmacyService.GetPharmacyByExchangeName(exchangeName);
                    if (pharmacySystem != null)
                    {
                        SendEmail(ex.Message, pharmacySystem.Email);
                    }
                }
            }
        }