/// <summary> /// A helper method used to populate the FeatsContainer with default feats. /// </summary> public static void PopulateContainer() { foreach (ClassFeats feat in Enum.GetValues(typeof(ClassFeats))) { if (FeatFactory.Create(feat) != null) { FeatsContainer.Add(FeatFactory.Create(feat)); } } }
public string Process(string flag) { // using delegate var val = "cool"; var num = 1; var features = FeatureFunctions <Func <string, int, string> > .Create(new NewFeature().ProcessSomeData, new NewFeature().ProcessSomeDataV2); return(FeatFactory.FuncFactory(features, Constants.FeatFlag == flag)(val, num)); }
static void Main(string[] args) { // factory pattern using Interface var result = FeatFactory .GetFeatureImplementation(Constants.FeatFlag) .DoStuff(); Console.WriteLine(result); // factory using Func<> var features = FeatureFunctions <Func <string, int, string> > .Create(new NewFeature().ProcessSomeData, new NewFeature().ProcessSomeDataV2); result = FeatFactory.FuncFactory(features, Constants.FeatFlag == "mycoolFlag")("foo", 1); Console.WriteLine(result); }
public void FeatFactory_ShouldBeV1() { var feat = FeatFactory.GetFeatureImplementation(Constants.FeatFlag); Assert.IsTrue(feat.GetType() == typeof(FeatureV1)); }
public void FeatFactory_ShouldBeV2() { var feat = FeatFactory.GetFeatureImplementation(""); Assert.IsTrue(feat.GetType() == typeof(FeatureV2)); }