/// <summary> /// final step in setting up database /// </summary> private void MapActivatedFeaturesToDefinitions() { if (ActivatedFeatures != null && ActivatedFeatures.Any()) { var distinctActivatedFeatureIds = ActivatedFeatures.Select(af => af.Id).Distinct(); foreach (Guid featureId in distinctActivatedFeatureIds) { var activatedFeatureGroup = ActivatedFeatures.Where(af => af.Id == featureId); var featureDef = FeatureDefinitions.FirstOrDefault(fd => fd.Id == featureId); if (featureDef != null) { // add activated features to feature definition featureDef.ActivatedFeatures.AddRange(activatedFeatureGroup); } else { // fyi - if we get here, we have most likely a group of faulty features ... // create feature definition and add features var newFeatureDef = FeatureDefinition.GetFeatureDefinition(activatedFeatureGroup); FeatureDefinitions.Add(newFeatureDef); } } } }
public virtual FeatureDefinition GetOrNull(string name) { return(FeatureDefinitions.GetOrDefault(name)); }