Parse() public static method

public static Parse ( string value ) : Host
value string
return Host
        public static Warning Parse(string value)
        {
            value = value.Trim();
            switch (value)
            {
            case "110 Response is stale":
                return(new Warning()
                {
                    Code = 110,
                    Text = "Response is stale"
                });

            case "111 Revalidation failed":
                return(new Warning()
                {
                    Code = 111,
                    Text = "Revalidation failed"
                });

            case "112 Disconnected operation":
                return(new Warning()
                {
                    Code = 112,
                    Text = "Disconnected operation"
                });

            case "113 Heuristic expiration":
                return(new Warning()
                {
                    Code = 113,
                    Text = "Heuristic expiration"
                });
            }
            var w     = new Warning();
            int space = value.IndexOf(' ');

            w.Code  = int.Parse(value.Substring(0, space), CultureInfo.InvariantCulture);
            value   = value.Substring(space + 1).Trim();
            space   = value.IndexOf(' ');
            w.Agent = Host.Parse(value.Substring(0, space));
            value   = value.Substring(space + 1).Trim();
            w.Text  = value;
            return(w);
        }
        public static Via Parse(string value)
        {
            var via  = new Via();
            var open = value.IndexOf('(');

            if (open != -1)
            {
                var comment = value.Substring(open + 1);
                comment     = comment.Substring(0, comment.LastIndexOf(')')).Trim();
                via.Comment = comment;
                value       = value.Substring(0, open);
            }
            value = value.Trim();
            var parts = value.Split();

            var slash = parts[0].IndexOf('/');

            if (slash != -1)
            {
                via.ProtocolName    = parts[0].Substring(0, slash);
                via.ProtocolVersion = parts[0].Substring(slash + 1);
            }
            else
            {
                via.ProtocolVersion = parts[0];
            }

            if (parts.Length == 1 || parts.Length > 2)
            {
                throw new FormatException(value);
            }

            via.ReceivedBy = Host.Parse(parts[1]);

            return(via);
        }