示例#1
0
        /// <summary>
        /// Sends a message to the given queue
        /// </summary>
        /// <param name="messageString">Message to publish</param>
        /// <param name="type">Type of message to send</param>
        /// <param name="localMessageQueue">Queue to send to</param>
        public void Send(string messageString, Type type, IMessageQueue localMessageQueue)
        {
            string     messageType = type.AssemblyQualifiedName;
            SnsMessage fakeMessage = new SnsMessage()
            {
                Message           = messageString,
                MessageAttributes = new Dictionary <string, MessageAttribute>()
                {
                    { "messageType", new MessageAttribute()
                      {
                          Type = "String", Value = messageType
                      } },
                },
            };

            foreach (var entry in GetCommonMetadata())
            {
                fakeMessage.MessageAttributes.Add(entry.Key, new MessageAttribute()
                {
                    Type = "String", Value = entry.Value
                });
            }

            string messageBody = _messageSerializer.Serialize(fakeMessage);

            localMessageQueue.AddMessage(messageBody);
            _messageLogger.OutboundLogMessage(messageBody, messageType);
        }