Exemple #1
0
        /// <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()
            });
        }
Exemple #2
0
        /// <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()
            });
        }
Exemple #3
0
        /// <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()
            });
        }
Exemple #4
0
        /// <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()
            });
        }