public virtual void ResetAllFeatures(int tenantId) { using (UnitOfWorkManager.Current.SetTenantId(tenantId)) { TenantFeatureRepository.Delete(f => f.TenantId == tenantId); } }
public virtual async Task ResetAllFeaturesAsync(int tenantId) { using (UnitOfWorkManager.Current.SetTenantId(tenantId)) { await TenantFeatureRepository.DeleteAsync(f => f.TenantId == tenantId); } }
public virtual async Task SetFeatureValueAsync(Tenant tenant, string featureName, string value) { //触发用户权限缓存清除 Resolve <IEventBus>().Trigger(new UserGrantedPermissionIndicator { TenantId = tenant.Id }); //No need to change if it's already equals to the current value if (await GetFeatureValueOrNullAsync(tenant.Id, featureName) == value) { return; } //Get the current feature setting TenantFeatureSetting currentSetting; using (UnitOfWorkManager.Current.SetTenantId(tenant.Id)) { currentSetting = await TenantFeatureRepository.FirstOrDefaultAsync(f => f.Name == featureName); } //Get the feature var feature = FeatureManager.GetOrNull(featureName); if (feature == null) { if (currentSetting != null) { await TenantFeatureRepository.DeleteAsync(currentSetting); } return; } //Determine default value var defaultValue = tenant.EditionId.HasValue ? (await Resolve <EditionManager>().GetFeatureValueOrNullAsync(tenant.EditionId.Value, featureName) ?? feature.DefaultValue) : feature.DefaultValue; //No need to store value if it's default if (value == defaultValue) { if (currentSetting != null) { await TenantFeatureRepository.DeleteAsync(currentSetting); } return; } //Insert/update the feature value if (currentSetting == null) { await TenantFeatureRepository.InsertAsync(new TenantFeatureSetting(tenant.Id, featureName, value)); } else { currentSetting.Value = value; } }
public virtual void ResetAllFeatures(int tenantId) { using (UnitOfWorkManager.Current.EnableFilter(AbpDataFilters.MayHaveTenant)) using (UnitOfWorkManager.Current.SetTenantId(tenantId)) { TenantFeatureRepository.Delete(f => f.TenantId == tenantId); } }
public virtual async Task ResetAllFeaturesAsync(long tenantId) { using (UnitOfWorkManager.Current.EnableFilter(AbpDataFilters.MayHaveTenant)) using (UnitOfWorkManager.Current.SetTenantId(tenantId)) { await TenantFeatureRepository.DeleteAsync(f => f.TenantId == tenantId); } }
public virtual void SetFeatureValue(TTenant tenant, string featureName, string value) { UnitOfWorkManager.WithUnitOfWork(() => { //No need to change if it's already equals to the current value if (GetFeatureValueOrNull(tenant.Id, featureName) == value) { return; } //Get the current feature setting TenantFeatureSetting currentSetting; using (UnitOfWorkManager.Current.EnableFilter(AbpDataFilters.MayHaveTenant)) using (UnitOfWorkManager.Current.SetTenantId(tenant.Id)) { currentSetting = TenantFeatureRepository.FirstOrDefault(f => f.Name == featureName); } //Get the feature var feature = FeatureManager.GetOrNull(featureName); if (feature == null) { if (currentSetting != null) { TenantFeatureRepository.Delete(currentSetting); } return; } //Determine default value var defaultValue = tenant.EditionId.HasValue ? (EditionManager.GetFeatureValueOrNull(tenant.EditionId.Value, featureName) ?? feature.DefaultValue) : feature.DefaultValue; //No need to store value if it's default if (value == defaultValue) { if (currentSetting != null) { TenantFeatureRepository.Delete(currentSetting); } return; } //Insert/update the feature value if (currentSetting == null) { TenantFeatureRepository.Insert(new TenantFeatureSetting(tenant.Id, featureName, value)); } else { currentSetting.Value = value; } }); }
public virtual async Task SetFeatureValueAsync(TTenant tenant, string featureName, string value) { //No need to change if it's already equals to the current value if (await GetFeatureValueOrNullAsync(tenant.Id, featureName) == value) { return; } //Get the current feature setting var currentSetting = await TenantFeatureRepository.FirstOrDefaultAsync(f => f.TenantId == tenant.Id && f.Name == featureName); //Get the feature var feature = FeatureManager.GetOrNull(featureName); if (feature == null) { if (currentSetting != null) { await TenantFeatureRepository.DeleteAsync(currentSetting); } return; } //Determine default value var defaultValue = tenant.EditionId.HasValue ? (await EditionManager.GetFeatureValueOrNullAsync(tenant.EditionId.Value, featureName) ?? feature.DefaultValue) : feature.DefaultValue; //No need to store value if it's default if (value == defaultValue) { if (currentSetting != null) { await TenantFeatureRepository.DeleteAsync(currentSetting); } return; } //Insert/update the feature value if (currentSetting == null) { await TenantFeatureRepository.InsertAsync(new TenantFeatureSetting(tenant.Id, featureName, value)); } else { currentSetting.Value = value; } }
private async Task <TenantFeatureCacheItem> GetTenantFeatureCacheItemAsync(int tenantId) { return(await CacheManager.GetTenantFeatureCache().GetAsync(tenantId, async() => { var tenant = await GetByIdAsync(tenantId); var newCacheItem = new TenantFeatureCacheItem { EditionId = tenant.EditionId }; var featureSettings = await TenantFeatureRepository.GetAllListAsync(f => f.TenantId == tenantId); foreach (var featureSetting in featureSettings) { newCacheItem.FeatureValues[featureSetting.Name] = featureSetting.Value; } return newCacheItem; })); }
/// <summary> /// Resets all custom feature settings for a tenant.Tenant will have features according to it's edition. /// 为商户重置所有自定义功能。商户将拥有其版本的特点 /// </summary> /// <param name="tenantId">Tenant Id</param> public async Task ResetAllFeaturesAsync(int tenantId) { await TenantFeatureRepository.DeleteAsync(f => f.TenantId == tenantId); }