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); } } } }