public async Task Consume(ConsumeContext <TenantDeletedEvent> context) { var tenant = await masterDbContext.Tenants.FindOrThrowAsync(context.Message.TenantId); await using var tenantDbContext = tenantDbContextFactory.CreateContext(tenant); await tenantDbContext.Database.EnsureDeletedAsync(); masterDbContext.Tenants.Remove(tenant); await masterDbContext.SaveChangesAsync(); }
public async Task <int> Run() { var response = await _client.Posts.GetAll(); var posts = _mapper.Map <IList <PostResource>, IList <Post> >(response); await _context.Posts.AddRangeAsync(posts); await _context.SaveChangesAsync(); return(_context.Posts.Count()); }
public virtual async Task AddAsync(TEntity entity, CancellationToken cancellationToken, bool saveNow = true) { Assert.NotNull(entity, nameof(entity)); await Entities.AddAsync(entity, cancellationToken).ConfigureAwait(false); if (saveNow) { await MasterDbContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } }
public async Task Consume(ConsumeContext <TenantCreatedOrUpdatedEvent> context) { var tenant = await masterDbContext.Tenants.FindAsync(context.Message.TenantId); if (tenant == null) { tenant = new Tenant { Id = context.Message.TenantId, DbConnectionString = string.Format(configuration.GetConnectionString("ConnectionStringTemplate"), context.Message.TenantId) }; masterDbContext.Tenants.Add(tenant); await using var tenantDbContext = tenantDbContextFactory.CreateContext(tenant); await tenantDbContext.Database.MigrateAsync(); } tenant.Name = context.Message.Name; tenant.OmIdentifier = context.Message.OmIdentifier; memoryCache.Set(tenant.Id, tenant); await masterDbContext.SaveChangesAsync(); }