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 DeleteAsync(Topic topic) { var kafkaDbContext = new KafkaDbContext(_kafkaDbContextFactory.Create().Options); var daoTopic = EntityFramework.DAOs.Topic.CreateFrom(topic); kafkaDbContext.Topics.Remove(daoTopic); await kafkaDbContext.SaveChangesAsync(); }
public async Task <IEnumerable <Cluster> > GetAllAsync() { var kafkaDbcontext = new KafkaDbContext(_kafkaDbContextFactory.Create().Options); var daoClusters = await kafkaDbcontext.Clusters.ToListAsync(); var clusters = daoClusters.Select(c => Cluster.FromDao(c)); return(clusters); }
public async Task <Cluster> AddAsync(string name, string kafkaClusterId, bool enabled, Guid id, string description = "") { var cluster = Cluster.Create(kafkaClusterId, name, description, enabled, id); var kafkaDbcontext = new KafkaDbContext(_kafkaDbContextFactory.Create().Options); kafkaDbcontext.Clusters.Add(new EntityFramework.DAOs.Cluster { Id = cluster.Id, Name = cluster.Name, ClusterId = cluster.ClusterId, Description = cluster.Description, Enabled = cluster.Enabled }); await kafkaDbcontext.SaveChangesAsync(); return(cluster); }
public async Task <IEnumerable <Topic> > GetAllAsync() { var kafkaDbContext = new KafkaDbContext(_kafkaDbContextFactory.Create().Options); var daoTopics = await kafkaDbContext.Topics.ToListAsync(); var topics = daoTopics.Select(t => Features.Kafka.Domain.Models.Topic.FromSimpleTypes( t.Id.ToString(), t.CapabilityId.ToString(), t.Name, t.Description, t.Partitions, t.Created, t.LastModified, t.Configurations ) ); return(topics); }