/// <summary> /// Gets the community set. /// </summary> /// <param name="communityFeatureSet">The community feature set.</param> /// <param name="user">The user.</param> /// <param name="featureSetType">Type of the feature set.</param> /// <returns> /// The <see cref="FeatureSet" />. /// </returns> public static FeatureSet GetPersonalSet(FeatureSet communityFeatureSet, User user, FeatureSetType featureSetType) { var personalFeatures = new List <IFeature>(); foreach (Type type in FeatureSets[featureSetType].Where(type => type.IsImplementationOf(typeof(IConfigurableFeature)))) { if (!user.FeatureCache.ContainsKey(type)) { var feature = (IFeature)Activator.CreateInstance(type); user.FeatureCache[type] = feature; feature.Configure(); var configurable = feature as IConfigurableFeature; if (configurable != null) { configurable.Configure(user); } } personalFeatures.Add(user.FeatureCache[type]); } return(new FeatureSet { Name = featureSetType.ToString(), Features = communityFeatureSet.Features.Concat(personalFeatures).ToList() }); }
/// <summary> /// Gets the feature set. /// </summary> /// <param name="user">The user.</param> /// <param name="featureSetType">Type of the feature set.</param> /// <returns>The <see cref="FeatureSet"/></returns> public static FeatureSet GetFeatureSet(User user, FeatureSetType featureSetType) { var features = new List <IFeature>(); foreach (Type type in FeatureSets[featureSetType]) { if (!user.FeatureCache.ContainsKey(type)) { IFeature feature = (IFeature)Activator.CreateInstance(type); user.FeatureCache[type] = feature; feature.Configure(); var configurable = feature as IConfigurableFeature; if (configurable != null) { configurable.Configure(user); } } features.Add(user.FeatureCache[type]); } return(new FeatureSet { Name = featureSetType.ToString(), Features = features.ToList() }); }
/// <summary> /// Gets the feature set without a user specified. This is used for the community feature set. /// </summary> /// <param name="featureSetType">Type of the feature set.</param> /// <returns>The <see cref="FeatureSet"/></returns> public static FeatureSet GetFeatureSet(FeatureSetType featureSetType) { var features = new List <IFeature>(); foreach (var type in FeatureSets[featureSetType]) { var feature = (IFeature)Activator.CreateInstance(type); feature.Configure(); } return(new FeatureSet { Name = featureSetType.ToString(), Features = features.ToList() }); }
/// <summary> /// Gets the community set. /// </summary> /// <param name="featureSetType">Type of the feature set.</param> /// <returns>The <see cref="FeatureSet" />.</returns> public static FeatureSet GetCommunitySet(FeatureSetType featureSetType) { var features = new List <IFeature>(); foreach (var type in FeatureSets[featureSetType]) { if (type.IsImplementationOf(typeof(IConfigurableFeature))) { continue; } var feature = (IFeature)Activator.CreateInstance(type); feature.Configure(); features.Add(feature); } return(new FeatureSet { Name = featureSetType.ToString(), Features = features.ToList() }); }