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);
            }
        }
Example #2
0
        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));
        }