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(); }
public DomainEventEnvelopRepository(CapabilityServiceDbContext dbContext) { _dbContext = dbContext; }
public async Task <IEnumerable <DomainEventEnvelope> > GetAll() { var dbContext = new CapabilityServiceDbContext(_capabilityServiceDbContextFactory.Create().Options); return(await dbContext.DomainEvents.ToListAsync()); }