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(); }
public Context(IDeferredMessageQueue <IIntegrationEvent> deferredMessageQueue, DbContextOptions dbContextOptions) : base(dbContextOptions) => DeferredMessageQueue = deferredMessageQueue;
public bool Equals(IDeferredMessageQueue <TMessage> other) { throw new NotImplementedException(); }