示例#1
0
        /// <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);
                    }
                }
            }
        }
示例#2
0
 public virtual FeatureDefinition GetOrNull(string name)
 {
     return(FeatureDefinitions.GetOrDefault(name));
 }