/// <summary> /// Loads configured features using metadata /// </summary> /// <param name="featureScope">The scope in which to look for the features</param> /// <param name="configuredFeatures">Collection of configured feature metadata</param> /// <returns>Collection of configured feature instances</returns> public static HashSet <ConfiguredFeature> LoadConfiguredFeatures(FeatureScope featureScope, ConfiguredFeatureMetadata[] configuredFeatures) { var loadedConfiguredFeatures = new HashSet <ConfiguredFeature>(); foreach (var configuredFeature in configuredFeatures) { try { if (configuredFeature.ConditionGroups != null && configuredFeature.ConditionGroups.Any()) { var loadedFeature = ConfiguredFeatureFactory.GetInstance(featureScope, configuredFeature.Name, configuredFeature.ConditionGroups); loadedConfiguredFeatures.Add(loadedFeature); } else if (configuredFeature.ConditionGroup != null) { var loadedFeature = ConfiguredFeatureFactory.GetInstance(featureScope, configuredFeature.Name, configuredFeature.ConditionGroup); loadedConfiguredFeatures.Add(loadedFeature); } else if (configuredFeature.Condition != null) { var loadedFeature = ConfiguredFeatureFactory.GetInstance(featureScope, configuredFeature.Name, configuredFeature.Condition); loadedConfiguredFeatures.Add(loadedFeature); } } catch (Exception ex) { Log.Logger.LogError(ex, $"Error encountered when trying to load ConfiguredFeature {configuredFeature.Name}."); Console.WriteLine(ex); } } return(loadedConfiguredFeatures); }
public void GetInstance_Returns_Feature_With_Condition() { var featureScope = FeatureScope.Project; var featureName = "FeatureName"; var feature = ConfiguredFeatureFactory.GetInstance(featureScope, featureName, ConditionMetadata); Assert.NotNull(feature); Assert.True(feature.Name == featureName); Assert.True(feature.FeatureScope == featureScope); Assert.True(feature is ConfiguredFeature); Assert.True(feature.Condition is XmlFileQueryCondition); }
public void GetInstance_Returns_Feature_With_Condition_Groups() { var featureScope = FeatureScope.Project; var featureName = "FeatureName"; var feature = ConfiguredFeatureFactory.GetInstance(featureScope, featureName, ConditionGroupsMetadata); Assert.NotNull(feature); Assert.True(feature.Name == featureName); Assert.True(feature.FeatureScope == featureScope); Assert.True(feature is ConfiguredFeature); Assert.True(feature.ConditionGroups.All(c => c.Conditions.Count() == 2)); Assert.True(feature.ConditionGroups.Count() == 2); }