public async Task AddAsync(Topic topic)
        {
            var kafkaDbContext             = new KafkaDbContext(_kafkaDbContextFactory.Create().Options);
            var capabilityServiceDbContext = new CapabilityServiceDbContext(_capabilityServiceDbContextFactory.Create().Options);
            var daoTopic = EntityFramework.DAOs.Topic.CreateFrom(topic);

            await kafkaDbContext.Topics.AddAsync(daoTopic);

            await kafkaDbContext.SaveChangesAsync();

            try
            {
                await _outbox.QueueDomainEvents(topic);

                await capabilityServiceDbContext.SaveChangesAsync();
            }
            catch
            {
                kafkaDbContext.Topics.Remove(daoTopic);

                await kafkaDbContext.SaveChangesAsync();

                throw;
            }
        }
        public async Task Add(IEnumerable <DomainEventEnvelope> domainEvents)
        {
            var dbContext = new CapabilityServiceDbContext(_capabilityServiceDbContextFactory.Create().Options);
            await dbContext.DomainEvents.AddRangeAsync(domainEvents);

            await dbContext.SaveChangesAsync();
        }
Пример #3
0
 public DomainEventEnvelopRepository(CapabilityServiceDbContext dbContext)
 {
     _dbContext = dbContext;
 }
        public async Task <IEnumerable <DomainEventEnvelope> > GetAll()
        {
            var dbContext = new CapabilityServiceDbContext(_capabilityServiceDbContextFactory.Create().Options);

            return(await dbContext.DomainEvents.ToListAsync());
        }