コード例 #1
0
        private void Consumer_Received(object sender, BasicDeliverEventArgs e)
        {
            try
            {
                string eventName = System.Text.Encoding.UTF8.GetString((byte[])e.BasicProperties.Headers["event.name"]);
                string source    = e.BasicProperties.Headers["event.source"] != null?
                                   System.Text.Encoding.UTF8.GetString((byte[])e.BasicProperties.Headers["event.source"])
                                       : null;

                DateTime timestamp = Newtonsoft.Json.JsonConvert.DeserializeObject <DateTime>(System.Text.Encoding.UTF8.GetString((byte[])e.BasicProperties.Headers["event.timestamp"]));
                int      version   = (int)e.BasicProperties.Headers["event.version"];

                var dispatchEvent = new DispatchEvent()
                {
                    Id        = Guid.Parse(e.BasicProperties.MessageId),
                    EventName = eventName,
                    Source    = source,
                    Timestamp = timestamp,
                    Version   = version,
                    Payload   = System.Text.Encoding.UTF8.GetString(e.Body)
                };

                System.Console.WriteLine($"Received event type: {dispatchEvent.EventName}, Id: {dispatchEvent.Id}");
                incomingEvents[dispatchEvent.Id] = e.DeliveryTag;
                ReceivedEventHandler?.Invoke(dispatchEvent);
            }
            catch (Exception ex)
            {
                System.Console.Error.WriteLine($"Error unpacking incoming event {e.BasicProperties.MessageId}");
                System.Console.Error.WriteLine(ex);
            }
        }
 //Method for firing the event
 public virtual void onReceive(MessageSend_EventArgs msg)
 {
     ReceivedEventHandler?.Invoke(this, msg);
 }