Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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();
        }