public void CanIdentifyEnabledSocialFeatures() { var socialConfig = new SocialFeaturesElement { Enabled = true, TwitterId = "mytwitterid", GithubId = "mygithubid", FacebookId = "my.facebook", PinterestId = "" }; var enabledFeatures = SocialFeatureList.CreateFrom(socialConfig); Assert.IsNotNull(enabledFeatures); Assert.AreEqual(3, enabledFeatures.Count); var twitter = enabledFeatures.SingleOrDefault(e => e.FeatureName == "TwitterId"); Assert.IsNotNull(twitter); Assert.AreEqual("mytwitterid", twitter.FeatureValue); Assert.AreEqual("twitter", twitter.FeatureImagePart); var github = enabledFeatures.SingleOrDefault(e => e.FeatureName == "GithubId"); Assert.IsNotNull(github); Assert.AreEqual("mygithubid", github.FeatureValue); Assert.AreEqual("github", github.FeatureImagePart); var facebook = enabledFeatures.SingleOrDefault(e => e.FeatureName == "FacebookId"); Assert.IsNotNull(facebook); Assert.AreEqual("my.facebook", facebook.FeatureValue); Assert.AreEqual("facebook", facebook.FeatureImagePart); }
public static List<SocialFeature> CreateFrom(SocialFeaturesElement socialFeatures) { const BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var properties = typeof(SocialFeaturesElement).GetProperties(bindingFlags).Where(p => p.Name != "Enabled").ToList(); var featureList = properties.Select(p => new SocialFeature { FeatureName = p.Name, FeatureValue = (string)p.GetValue(socialFeatures, null), FeatureImagePart = GetImageValue(p.Name) }); return featureList.Where(p => !string.IsNullOrEmpty(p.FeatureValue)).ToList(); }