public virtual async Task SetFeatureValueAsync(int editionId, string featureName, string value) { if (await GetFeatureValueOrNullAsync(editionId, featureName) == value) { return; } var currentSetting = await EditionFeatureRepository.FirstOrDefaultAsync(f => f.EditionId == editionId && f.Name == featureName); var feature = FeatureManager.GetOrNull(featureName); if (feature == null || feature.DefaultValue == value) { if (currentSetting != null) { await EditionFeatureRepository.DeleteAsync(currentSetting); } return; } if (currentSetting == null) { await EditionFeatureRepository.InsertAsync(new EditionFeatureSetting(editionId, featureName, value)); } else { currentSetting.Value = value; } }
protected virtual async Task <EditionfeatureCacheItem> CreateEditionFeatureCacheItem(int editionId) { var newCacheItem = new EditionfeatureCacheItem(); var featureSettings = await EditionFeatureRepository.GetAllListAsync(f => f.EditionId == editionId); foreach (var featureSetting in featureSettings) { newCacheItem.FeatureValues[featureSetting.Name] = featureSetting.Value; } return(newCacheItem); }