An event bus that sends serialized object payloads through a IMessageSender.
Note that Infrastructure.EventSourcing.IEventSourced entities persisted through the IEventSourcedRepository{T} do not use the IEventBus, but has its own event publishing mechanism.
Inheritance: IEventBus
Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting sending random AssesmentCompleted Events");

            var settings = InfrastructureSettings.Read(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase), "Settings.xml"));
            var serializer = new JsonTextSerializer();
            var metadata = new StandardMetadataProvider();
            var topicSender = new TopicSender(settings.ServiceBus, "AssesmentTopic");

            var eventBus = new EventBus(topicSender, metadata, serializer);
            int baseTopicId = 10021;
            for (int i = 0;; i++)
            {
                var assesmentCompleted = new AssesmentCompleted
                {
                    SubjectId = 1002,
                    TopicId = baseTopicId++,
                    CompletedDate = DateTime.Now,
                    PassThreshold = 80,
                    Score = 70,
                    StudentId = i,
                    TopicName = "Topic " + i
                };

                eventBus.Publish(assesmentCompleted);

                Console.WriteLine("Published :" + assesmentCompleted.TopicName);

                Thread.Sleep(10000);
            }
        }
        public QuestionsController()
        {
            var settings = InfrastructureSettings.Read(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase), "Settings.xml"));
            var serializer = new JsonTextSerializer();
            var metadata = new StandardMetadataProvider();
            var topicSender = new TopicSender(settings.ServiceBus, "AssesmentTopic");

            _eventBus = new EventBus(topicSender, metadata, serializer);
        }