Ejemplo n.º 1
0
        public async Task EnsureSchemaInitialized()
        {
            // `receptionDelay` should include transaction timeout + clock drift. Otherwise, it may skip events during reception.
            var receptionDelay = TimeSpan.FromMilliseconds(3000);
            var eventStore     = Wireup.Init()
                                 .UsingSqlPersistence(ConnectionString)
                                 .WithDialect(new PostgreSqlDialect())
                                 .InitializeStorageEngine()
                                 .UsingJsonSerialization()
                                 .Build();

            eventStore.Advanced.Purge();
            _eventStore = eventStore;
            Outbox      = new NEventStoreOutbox(eventStore, receptionDelay);
            var db = new TestDbContextWithOutbox(ConnectionString, Outbox);

            db.Database.CreateIfNotExists();
            // Warm-up
            for (int i = 0; i < 2; i++)
            {
                using var warmUpDb = NewDbContext();
                warmUpDb.Users.Add(new UserAggregate(Guid.NewGuid(), ""));
                await warmUpDb.SaveChangesAsync();
            }
        }
Ejemplo n.º 2
0
        public async Task InitializeAndWarmUp()
        {
            _outbox = new NEventStoreOutbox(Wireup.Init()
                                            .UsingSqlPersistence(ConnectionString)
                                            .WithDialect(new PostgreSqlDialect())
                                            .InitializeStorageEngine()
                                            .UsingJsonSerialization()
                                            .Build(), TimeSpan.Zero);
            var db = new TestDbContextWithOutbox(ConnectionString, _outbox);

            db.Database.CreateIfNotExists();
            await WarmUp();
        }