public ConfiguredFeaturesCollection GetFeatureFlags()
        {
            var features = _innerFeatureFlagProvider.GetFeatureFlags();

            var currentUser = _currentUserProvider.GetCurrentUser();

            // All admins get VenuesDataManagement
            if (currentUser.IsAdmin)
            {
                features = features.With(FeatureFlags.VenuesDataManagement);
            }

            // If the user is bound to a provider on the beta testers list, they get VenuesDataManagement
            if (currentUser.CurrentProviderUkprn.HasValue &&
                _betaTestingProviderUkprns.Contains(currentUser.CurrentProviderUkprn.Value))
            {
                features = features.With(FeatureFlags.VenuesDataManagement);
            }

            // If any of '{Courses|Venues}DataManagement' features are defined
            // then also define the root 'DataManagement' feature
            if (features.HaveFeature(FeatureFlags.CoursesDataManagement) ||
                features.HaveFeature(FeatureFlags.VenuesDataManagement))
            {
                features = features.With(FeatureFlags.DataManagement);
            }

            return(features);
        }
コード例 #2
0
 public ConfiguredFeaturesCollection GetFeatureFlags()
 {
     if (_overridenFeatures != null)
     {
         return(_overridenFeatures);
     }
     else
     {
         return(_inner.GetFeatureFlags());
     }
 }
コード例 #3
0
 public ISet <string> GetFeatureFlags()
 {
     if (_overridenFeatures != null)
     {
         return(_overridenFeatures);
     }
     else
     {
         return(_inner.GetFeatureFlags());
     }
 }
コード例 #4
0
 public IReadOnlyCollection <string> GetFeatureFlags()
 {
     if (_overridenFeatures != null)
     {
         return(_overridenFeatures);
     }
     else
     {
         return(_inner.GetFeatureFlags());
     }
 }
コード例 #5
0
 public static bool HaveFeature(this IFeatureFlagProvider featureFlagProvider, string feature) =>
 featureFlagProvider.GetFeatureFlags().Contains(feature);
コード例 #6
0
        public CanaryUserFeatureFlagProvider(
            IFeatureFlagProvider innerFeatureFlagProvider,
            ICurrentUserProvider currentUserProvider)
        {
            if (innerFeatureFlagProvider is null)
            {
                throw new ArgumentNullException(nameof(innerFeatureFlagProvider));
            }

            if (currentUserProvider is null)
            {
                throw new ArgumentNullException(nameof(currentUserProvider));
            }

            _featureFlags = new Lazy <IReadOnlyCollection <string> >(() =>
                                                                     ResolveFeatureFlags(currentUserProvider.GetCurrentUser(), innerFeatureFlagProvider.GetFeatureFlags()));
        }
コード例 #7
0
 public static bool HaveFeature(this IFeatureFlagProvider featureFlagProvider, string feature) =>
 featureFlagProvider.GetFeatureFlags().Contains(feature, StringComparer.OrdinalIgnoreCase);
コード例 #8
0
 public ConfiguredFeaturesCollection GetFeatureFlags() =>
 ResolveFeatureFlags(_currentUserProvider.GetCurrentUser(), _innerFeatureFlagProvider.GetFeatureFlags());