Esempio n. 1
0
        private void OnMessageReceived(IReceiverLink receiver, Message message)
        {
            List <CFXEnvelope> envelopes = null;

            try
            {
                envelopes = AmqpUtilities.EnvelopesFromMessage(message);
            }
            catch (Exception ex)
            {
                envelopes = null;
                AppLog.Error(ex);
            }

            if (envelopes == null || (envelopes != null && envelopes.Count < 1))
            {
                try
                {
                    receiver.Accept(message);
                    AppLog.Error(string.Format("Malformed Message Received:  {0}", AmqpUtilities.MessagePreview(message)));
                    Endpoint?.Channel_OnMalformedMessageReceived(new AmqpChannelAddress()
                    {
                        Uri = NetworkUri, Address = receiver.Name
                    }, AmqpUtilities.StringFromEnvelopes(message));
                }
                catch (Exception ex)
                {
                    AppLog.Error(ex);
                }
            }
            else if (envelopes != null && OnCFXMessageReceived != null)
            {
                try
                {
                    receiver.Accept(message);
                    envelopes.ForEach(env => OnCFXMessageReceived(new AmqpChannelAddress()
                    {
                        Uri = NetworkUri, Address = receiver.Name
                    }, env));
                }
                catch (Exception ex)
                {
                    AppLog.Error(ex);
                }
            }
        }