JsonFx.UI.Jbst.JbstWriter.SplitPrefix C# (CSharp) Method

SplitPrefix() private static method

Splits the prefix and tag name
private static SplitPrefix ( string rawName, string &tagName ) : string
rawName string
tagName string
return string
        private static string SplitPrefix(string rawName, out string tagName)
        {
            int index = String.IsNullOrEmpty(rawName) ?
                -1 : rawName.IndexOf(PrefixDelim);

            if (index < 0)
            {
                tagName = rawName;
                return String.Empty;
            }

            tagName = rawName.Substring(index+1);
            return rawName.Substring(0, index+1);
        }

Usage Example

Example #1
0
        private void PushTag(string rawName)
        {
            string tagName;
            string prefix = JbstWriter.SplitPrefix(rawName, out tagName);

            JbstContainerControl control;

            if (JbstCommandBase.JbstPrefix.Equals(prefix, StringComparison.OrdinalIgnoreCase))
            {
                if (StringComparer.OrdinalIgnoreCase.Equals(JbstControlReference.ControlCommand, tagName))
                {
                    control = new JbstControlReference();
                }
                else if (StringComparer.OrdinalIgnoreCase.Equals(JbstPlaceholder.PlaceholderCommand, tagName))
                {
                    control = new JbstPlaceholder();
                }
                else if (StringComparer.OrdinalIgnoreCase.Equals(JbstInline.InlineCommand, tagName))
                {
                    control = new JbstInline();
                }
                else
                {
                    throw new InvalidOperationException("Unknown JBST command ('" + rawName + "')");
                }
            }
            else
            {
                control = new JbstContainerControl(prefix, tagName);
            }

            if (this.current == null)
            {
                this.current = this.document;
            }

            this.current.ChildControls.Add(control);
            this.current = control;
        }