public static bool Attribute_AliasDefinition(string attributeCode, out string attrinuteName, out string mirrorParameter1, out string mirrorClass, out string mirrorMethodName) { List <string> parameters; ClassNTAttributes_Methods.Attribute_Parts(attributeCode, out attrinuteName, out parameters); // Default values mirrorParameter1 = null; mirrorClass = null; mirrorMethodName = null; if (BlueprintMethodRuleAlias(attrinuteName) == false) { return(false); //<================================================ } // Parse the parameters foreach (string parameter in parameters) { if (parameter.Contains("MirrorParameter1")) { mirrorParameter1 = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("MirrorClass")) { mirrorClass = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("MirrorMethodName")) { mirrorMethodName = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } } return(true); }
public static bool Method_Attributes(string attributeCode, out string name, out bool ignore, out string shortcutClassName, out string shortcutMethodName) { List <string> parameters; ClassNTAttributes_Methods.Attribute_Parts(attributeCode, out name, out parameters); // Default values ignore = false; shortcutClassName = null; shortcutMethodName = null; if (BlueprintMethodRule(name) == false) { return(false); //<================================================ } // Parse the parameters foreach (string parameter in parameters) { if (parameter.Contains("Ignore")) { ignore = parameter.zvar_Value("=").zTo_Bool(); } if (parameter.Contains("ShortcutClassName")) { shortcutClassName = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("ShortcutMethodName")) { shortcutMethodName = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } } return(true); }
public static ClassNTAttribute_ Create(string attributeStr) { var result = new ClassNTAttribute_(); List <string> parameterList; ClassNTAttributes_Methods.Attribute_Parts(attributeStr, out result.AttributeName, out parameterList); foreach (string parameterStr in parameterList) { var parameter = ClassNTAttribute_Parameter_.Create(result.AttributeName, parameterStr); result.Parameters.Add(parameter); } return(result); }
public static void Attribute_Parts_Test() { string name; List <string> parameters; #region Test1: [Test] // ============================================================== var attributeCode1 = "[Test]"; ClassNTAttributes_Methods.Attribute_Parts(attributeCode1, out name, out parameters); Assert.Equal("Test", name); Assert.Equal(0, parameters.Count); #endregion #region Test2: [TestedMethod_("Attribute_Parts()")] // ============================================================= var attributeCode2 = "[TestedMethod_(\"Attribute_Parts()\")]"; ClassNTAttributes_Methods.Attribute_Parts(attributeCode2, out name, out parameters); Assert.Equal("TestedMethod_", name); Assert.Equal("\"Attribute_Parts()\"", parameters[0]); Assert.Equal(1, parameters.Count); #endregion #region Test3: [ActiveTemplate_(Description = "This code will link different classes into a CTI network", Parameter1_Caption = "Class typename:\", Parameter1_Name= \"ClassHeading_NewTypeName\", Parameter1_Value= enATemplate_Value.Value_FromClipboard, Parameter2_Caption = "Property name:", Parameter2_Name = "NewTypeName")] // ======================================================= // [ActiveTemplate_(Description = "This code will link different classes into a CTI network", // Parameter1_Caption = "Class typename:", Parameter1_Name= "ClassHeading_NewTypeName", Parameter1_Value= enATemplate_Value.Value_FromClipboard, // Parameter2_Caption = "Property name:", Parameter2_Name = "NewTypeName")] var attLine = "[ActiveTemplate_(Description = \"This code will link different classes into a CTI network\", Parameter1_Caption = \"Class typename:\", Parameter1_Name= \"ClassHeading_NewTypeName\", Parameter1_Value= enATemplate_Value.Value_FromClipboard, Parameter2_Caption = \"Property name:\", Parameter2_Name = \"NewTypeName\")]"; ClassNTAttributes_Methods.Attribute_Parts(attLine, out name, out parameters); Assert.Equal("ActiveTemplate_", name); Assert.Equal("Description = \"This code will link different classes into a CTI network\"", parameters[0]); Assert.Equal("Parameter1_Caption = \"Class typename:\"", parameters[1]); Assert.Equal("Parameter1_Name= \"ClassHeading_NewTypeName\"", parameters[2]); Assert.Equal("Parameter1_Value= enATemplate_Value.Value_FromClipboard", parameters[3]); Assert.Equal("Parameter2_Caption = \"Property name:\"", parameters[4]); Assert.Equal("Parameter2_Name = \"NewTypeName\"", parameters[5]); Assert.Equal(6, parameters.Count); #endregion #region Test4: Illigal input "", "[bla", "bla]" Assert.Throws <InvalidOperationException>(() => ClassNTAttributes_Methods.Attribute_Parts("", out name, out parameters)); Assert.Throws <InvalidOperationException>(() => ClassNTAttributes_Methods.Attribute_Parts("[bla", out name, out parameters)); Assert.Throws <InvalidOperationException>(() => ClassNTAttributes_Methods.Attribute_Parts("bla]", out name, out parameters)); #endregion }
public static bool BlueprintRule_Attributes(string attributeCode, out string name, out List <string> parameters, out enBlueprint_ClassNetworkType classNetworkType, out string ignore1, out string ignore2, out string ignore3, out string ignore4) { ClassNTAttributes_Methods.Attribute_Parts(attributeCode, out name, out parameters); // Default values classNetworkType = enBlueprint_ClassNetworkType.Undefined; ignore1 = null; ignore2 = null; ignore3 = null; ignore4 = null; if (BlueprintRuleClass(name) == false) { return(false); //<================================================ } // Test the parameters // The first parameter is the enBlueprintClassNetworkType var parm1 = parameters[0]; classNetworkType = parm1.zEnum_To_EnumValue <enBlueprint_ClassNetworkType>(); //var value = parm1.zvar_Value("."); //classNetworkType = value.zEnum_To_EnumValue<enBlueprintClassNetworkType>(); foreach (string parameter in parameters) { if (parameter.Contains("Ignore_Namespace1")) { ignore1 = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("Ignore_Namespace2")) { ignore2 = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("Ignore_Namespace3")) { ignore3 = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } if (parameter.Contains("Ignore_Namespace4")) { ignore4 = parameter.zvar_Value("=").zRemove_DoubleQuotes(); } } return(true); }