public IFeatureManifest <TFeatureEnum> CreateFeatureManifest() { FeatureSetting <TFeatureEnum, TTenantEnum>[] featureSettings = _featureSettingsRepository.GetFeatureSettings(); var manifest = new FeatureManifest <TFeatureEnum>(); foreach (var setting in featureSettings) { FeatureVisibilityMode featureVisibilityMode = _httpContext.Request.Cookies[FeaturePreviewCookieName].IsNotNull() ? FeatureVisibilityMode.Preview : FeatureVisibilityMode.Normal; bool isAvailable = _featureSettingService .AllDependenciesAreSatisfiedForTheFeatureSetting(setting, new Tuple <FeatureVisibilityMode, TTenantEnum, DateTime>( featureVisibilityMode, _tenancyContext.CurrentTenant, _clock.Now)); manifest.Add(setting.Feature, new FeatureDescriptor <TFeatureEnum>(setting.Feature) { Dependencies = setting.Dependencies, IsAvailable = isAvailable, Settings = setting.Settings, }); } return(manifest); }
public IFeatureManifest <TFeatureEnum> CreateFeatureManifest() { FeatureSetting <TFeatureEnum, TTenantEnum>[] featureSettings = _featureSettingRepository.GetFeatureSettings(); var manifest = new FeatureManifest <TFeatureEnum>(); foreach (var setting in featureSettings) { var isAvailable = _featureSettingService.AllDependenciesAreSatisfiedForTheFeatureSetting(setting, new EmptyArgs()); manifest.Add(setting.Feature, new FeatureDescriptor <TFeatureEnum>(setting.Feature) { Dependencies = setting.Dependencies, IsAvailable = isAvailable, Settings = setting.Settings, }); } return(manifest); }