public BlockOrTransactionProperty GetBlockOrTransactionPropertyForElementNode(XmlNode node, XmlNamespaceManager nsmgr)
        {
            if (node != null)
            {
                var propertyId = GetValueFromFieldForElementNode(node, nsmgr, ValueFieldName);
                return(EnumMappers.MapBlocklyCodeToBlockOrTransactionProperty(propertyId));
            }

            throw new InvalidOperationException("Node is required in this function!");
        }
        public SolidityType?GeTypeForElementNode(XmlNode node, XmlNamespaceManager nsmgr)
        {
            if (node != null)
            {
                var typeId = GetValueFromFieldForElementNode(node, nsmgr, TypeFieldName);
                if (!string.IsNullOrWhiteSpace(typeId))
                {
                    return(EnumMappers.MapBlocklyCodeToSolidityType(typeId));
                }
            }

            return(null);
        }
        public Variable GetVariableFromArgumentNode(XmlNode node, XmlNamespaceManager nsmgr)
        {
            if (node != null)
            {
                return(new Variable()
                {
                    Name = node.Attributes[LCNameFieldName].Value,
                    Type = EnumMappers.MapBlocklyCodeToSolidityType(node.Attributes[LCTypeFieldName].Value)
                });
            }

            return(null);
        }
        public ModificationType GetModificationTypeForElementNode(XmlNode node, XmlNamespaceManager nsmgr)
        {
            if (node != null)
            {
                var mName = GetValueFromFieldForElementNode(node, nsmgr, StateModificationFieldName);
                if (!string.IsNullOrWhiteSpace(mName))
                {
                    return(EnumMappers.MapBlocklyCodeToModificationType(mName));
                }
            }

            return(ModificationType.None);
        }
        public Visibility?GetVisibilityForElementNode(XmlNode node, XmlNamespaceManager nsmgr)
        {
            if (node != null)
            {
                var visibilityNode = node.SelectSingleNode($"gxml:field[@name=\"{VisibilityFieldName}\"]", nsmgr);
                if (visibilityNode != null)
                {
                    return(EnumMappers.MapBlocklyCodeToVisibility(visibilityNode.InnerText));
                }
            }

            return(null);
        }