public virtual async Task HandleEventAsync(EntityCreatedEto <TenantEto> eventData) { try { using (_currentTenant.Change(null)) { var tenant = await _tenantRepository.FindAsync(eventData.Entity.Id, true); if (tenant == null) { return; } var connectionStrings = new ConnectionStrings(); foreach (var tenantConnectionString in tenant.ConnectionStrings) { connectionStrings[tenantConnectionString.Name] = tenantConnectionString.Value; } var cacheItem = new TenantConfigurationCacheItem(tenant.Id, tenant.Name, connectionStrings); var cacheKey = TenantConfigurationCacheItem.CalculateCacheKey(eventData.Entity.Id.ToString()); await _cache.SetAsync(cacheKey, cacheItem); } } catch (Exception ex) { _logger.LogException(ex); } }
public virtual async Task HandleEventAsync(EntityCreatedEto <TenantEto> eventData) { var tenantDto = await _tenantAppService.GetAsync(eventData.Entity.Id); var tenantConnectionStringsDto = await _tenantAppService.GetConnectionStringAsync(eventData.Entity.Id); var connectionStrings = new ConnectionStrings(); foreach (var tenantConnectionString in tenantConnectionStringsDto.Items) { connectionStrings[tenantConnectionString.Name] = tenantConnectionString.Value; } var cacheItem = new TenantConfigurationCacheItem(tenantDto.Id, tenantDto.Name, connectionStrings); var cacheKey = TenantConfigurationCacheItem.CalculateCacheKey(eventData.Entity.Id.ToString()); await _cache.SetAsync(cacheKey, cacheItem); }
public virtual async Task HandleEventAsync(EntityUpdatedEto <TenantEto> eventData) { // 禁用租户过滤器 using (_dataFilter.Disable <IMultiTenant>()) { var tenant = await _tenantRepository.FindAsync(eventData.Entity.Id, true); if (tenant == null) { return; } var connectionStrings = new ConnectionStrings(); foreach (var tenantConnectionString in tenant.ConnectionStrings) { connectionStrings[tenantConnectionString.Name] = tenantConnectionString.Value; } var cacheItem = new TenantConfigurationCacheItem(tenant.Id, tenant.Name, connectionStrings); var cacheKey = TenantConfigurationCacheItem.CalculateCacheKey(eventData.Entity.Id.ToString()); await _cache.SetAsync(cacheKey, cacheItem); } }
public virtual async Task HandleEventAsync(EntityDeletedEto <TenantEto> eventData) { var cacheKey = TenantConfigurationCacheItem.CalculateCacheKey(eventData.Entity.Id.ToString()); await _cache.RemoveAsync(cacheKey); }