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