Esempio n. 1
0
        public bool Announce(IMessage message, IMessageSettingsOut messageSettings)
        {
            _processor.Type = messageSettings.MessageSettings["produce.ontopic"];
            var valueToSend = JsonHelperSerialiser.ToJson(message, JsonHelperSerialiserSettings.CamelCaseSerialiseSettings);

            var deliveryReport = producer.ProduceAsync(messageSettings.MessageSettings["produce.ontopic"], null, valueToSend);

            var result = deliveryReport.ConfigureAwait(false).GetAwaiter().GetResult(); // synchronously waits for message to be produced.

            if (result.IsSuccess())
            {
                producer.Flush(TimeSpan.FromSeconds(10));

                var messageToLog = new AllsaintsMessageLogger.LogMessage()
                {
                    Id           = message.Id,
                    DateStampUtc = message.DateStampUtc,
                    IsTest       = message.IsTest,
                    Message      = message,
                };
                _messageLogger.LogMessage(EventTypes.Sent, _processor, messageToLog);
                return(true);
            }
            else
            {
                OnError(result.Error.ToString());
                return(false);
            }
        }
Esempio n. 2
0
        private void Consumer_OnMessage(object sender, Message <string, string> msg)
        {
            var messageObject = JsonHelperSerialiser.FromJson <T>(msg.Value, JsonHelperSerialiserSettings.CamelCaseSerialiseSettings);

            OnMessage(messageObject);
            var committedOffsets = consumer.CommitAsync(msg).ConfigureAwait(false).GetAwaiter().GetResult();             // synchronously waits for message to be produced.

            var messageToLog = new AllsaintsMessageLogger.LogMessage()
            {
                Id           = messageObject.Id,
                DateStampUtc = messageObject.DateStampUtc,
                IsTest       = messageObject.IsTest,
                Message      = messageObject,
            };

            _messageLogger.LogMessage(EventTypes.Reveived, _processor, messageToLog);
        }