Пример #1
0
        static void Main(string[] args)
        {
            // If false then immediate dispatcher is used
            const bool deferredEventDispatcher = true;

            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddUnitOfWork();
            serviceCollection.AddActor <User>();

            if (deferredEventDispatcher)
            {
#pragma warning disable CS0162 // Unreachable code detected
                serviceCollection.AddDeferredMessageQueue <IDomainEvent>();
                // serviceCollection.AddDeferredDomainEventMessageQueue();
#pragma warning restore CS0162 // Unreachable code detected
            }
            else
            {
#pragma warning disable CS0162 // Unreachable code detected
                serviceCollection.AddImmediateMessageQueue <IDomainEvent>();
                // serviceCollection.AddImmediateDomainEventMessageQueue();
#pragma warning restore CS0162 // Unreachable code detected
            }

            ServiceProvider serviceProvider = serviceCollection.BuildServiceProvider();
            DomainEvent.StandardProducer = serviceProvider.GetService <IMessageQueueProducer <IDomainEvent> >();

            User user = serviceProvider.GetService <User>();
            UserActorSample(user).Wait();

            if (deferredEventDispatcher)
            {
#pragma warning disable CS0162 // Unreachable code detected
                IDeferredMessageQueue <IDomainEvent> deferredDomainEventDispatcher = serviceProvider.GetService <IDeferredMessageQueue <IDomainEvent> >();
                deferredDomainEventDispatcher.Dispatch().Wait();
#pragma warning restore CS0162 // Unreachable code detected
            }

            Console.WriteLine($"There is {serviceProvider.GetService<IProfileRepository>().Count} profile(s)");
            Console.Read();
        }
Пример #2
0
 public Context(IDeferredMessageQueue <IIntegrationEvent> deferredMessageQueue, DbContextOptions dbContextOptions)
     : base(dbContextOptions)
     => DeferredMessageQueue = deferredMessageQueue;
Пример #3
0
 public bool Equals(IDeferredMessageQueue <TMessage> other)
 {
     throw new NotImplementedException();
 }