KeePass.Util.XmlSerialization.XmlSerializerEx.ReadEcasTrigger C# (CSharp) Method

ReadEcasTrigger() private static method

private static ReadEcasTrigger ( XmlReader xr ) : KeePass.Ecas.EcasTrigger
xr System.Xml.XmlReader
return KeePass.Ecas.EcasTrigger
        private static KeePass.Ecas.EcasTrigger ReadEcasTrigger(XmlReader xr)
        {
            KeePass.Ecas.EcasTrigger o = new KeePass.Ecas.EcasTrigger();

            if(SkipEmptyElement(xr)) return o;

            Debug.Assert(xr.NodeType == XmlNodeType.Element);
            xr.ReadStartElement();
            xr.MoveToContent();

            while(true)
            {
                XmlNodeType nt = xr.NodeType;
                if((nt == XmlNodeType.EndElement) || (nt == XmlNodeType.None)) break;
                if(nt != XmlNodeType.Element) { Debug.Assert(false); continue; }

                switch(xr.LocalName)
                {
                    case "Guid":
                        o.UuidString = ReadString(xr);
                        break;
                    case "Name":
                        o.Name = ReadString(xr);
                        break;
                    case "Comments":
                        o.Comments = ReadString(xr);
                        break;
                    case "Enabled":
                        o.Enabled = ReadBoolean(xr);
                        break;
                    case "InitiallyOn":
                        o.InitiallyOn = ReadBoolean(xr);
                        break;
                    case "TurnOffAfterAction":
                        o.TurnOffAfterAction = ReadBoolean(xr);
                        break;
                    case "Events":
                        o.EventArrayForSerialization = ReadArrayOfEcasEvent(xr);
                        break;
                    case "Conditions":
                        o.ConditionsArrayForSerialization = ReadArrayOfEcasCondition(xr);
                        break;
                    case "Actions":
                        o.ActionArrayForSerialization = ReadArrayOfEcasAction(xr);
                        break;
                    default:
                        Debug.Assert(false);
                        xr.Skip();
                        break;
                }

                xr.MoveToContent();
            }

            Debug.Assert(xr.NodeType == XmlNodeType.EndElement);
            xr.ReadEndElement();
            return o;
        }