예제 #1
0
        /// <summary>
        /// Publish the specified event.
        /// </summary>
        /// <param name="event">Event.</param>
        /// <typeparam name="T">The 1st type parameter.</typeparam>
        public void Publish <T>(T @event) where T : Event
        {
            if (bus == null)
            {
                throw new ApplicationException("Rubbit MQ is not intialized yet.");
            }

            var innerMessage = JsonConvert.SerializeObject(@event);
            var eventType    = @event.GetType();
            var typeName     = eventType.ToString();
            var topicName    = typeName.Substring(0, typeName.IndexOf(".", StringComparison.CurrentCulture));

            var message = new PublishedMessage {
                MessageTypeName = eventType.AssemblyQualifiedName, SerialisedMessage = innerMessage
            };

            bus.PublishAsync(message, topicName).Wait();
        }
예제 #2
0
        public void Publish <T>(T @event) where T : Event
        {
            if (bus != null)
            {
                var innerMessage = JsonConvert.SerializeObject(@event);

                var eventType = @event.GetType();
                var typeName  = eventType.ToString();
                var topicName = typeName.Substring(0, typeName.LastIndexOf("."));

                var message = new PublishedMessage()
                {
                    MessageTypeName = eventType.AssemblyQualifiedName, SerialisedMessage = innerMessage
                };

                bus.PublishAsync(message, topicName).Wait();
            }
            else
            {
                throw new ApplicationException("RabbitMqBus is not yet initialised");
            }
        }