private void HandleScannedTag(Dictionary <string, string> vals, bool?sigValid) { if (!mqHandler.IsConnected) { Console.WriteLine("Not connected to MQ, not sending event."); return; } TagScannedEvent tse = new TagScannedEvent(); tse.FlagCarrier.ID = AppSettings.DeviceId; tse.FlagCarrier.Group = AppSettings.GroupId; tse.FlagCarrier.UID = curUid; tse.FlagCarrier.ValidSignature = sigValid; tse.FlagCarrier.PubKey = AppSettings.PubKey; tse.FlagCarrier.Time = new TagScannedEvent.TimeData(); if (vals.ContainsKey("display_name")) { tse.User.DisplayName = vals["display_name"]; } else { tse.User.DisplayName = "*unset*"; } if (vals.ContainsKey("user_id")) { tse.User.ID = vals["user_id"]; } tse.RawData = vals; try { mqHandler.Publish(tse); } catch (Exception e) { Console.WriteLine("Failed publishing scan: " + e.Message); } }
public void Publish(TagScannedEvent tagEvent) { if (channel == null) { throw new Exception("No channel established when trying to publish event."); } if (!channel.IsOpen) { SetupChannel(); } string json = JsonConvert.SerializeObject(tagEvent, Formatting.None, new JsonSerializerSettings() { DateParseHandling = DateParseHandling.DateTimeOffset }); channel.BasicPublish(exchange: exchangeName, routingKey: TagScannedTopic, basicProperties: null, body: Encoding.UTF8.GetBytes(json)); }