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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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
        }
示例#5
0
        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);
        }