RPCLibrary.Request.Parse C# (CSharp) Method

Parse() public static method

public static Parse ( XmlElement request ) : Request
request System.Xml.XmlElement
return Request
        public static Request Parse(XmlElement request)
        {
            if (request == null)
            {
                return null;
            }

            if (request.HasAttribute("Type"))
            {
                string type = request.GetAttribute("Type");
                if (type != Const.REQUEST)
                {
                    throw new Exception("method type error!");
                }
            }
            else
            {
                throw new Exception("method format error!");
            }

            Request result = null;

            if (request.HasAttribute("Name"))
            {
                string name = request.GetAttribute("Name");
                result = new Request(name);
            }
            else
            {
                throw new Exception("method format error!");
            }

            if (request.HasAttribute("Sequence"))
            {
                string sequence = request.GetAttribute("Sequence");
                result.Sequence = (sequence.ToLower() == "true" ? true : false);
            }
            else
            {
                throw new Exception("method format error!");
            }

            XmlNode parameterRoot = request.SelectSingleNode("Parameter");
            if (parameterRoot != null)
            {
                XmlNodeList parameters = parameterRoot.ChildNodes;
                foreach (XmlNode parameter in parameters)
                {
                    Parameter p = Parameter.Parse(parameter as XmlElement);
                    result.AddParameter(p);
                }
            }

            return result;

        }