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