示例#1
0
        public override void Deserialize(System.Xml.XmlNode node)
        {
            base.Deserialize(node);

            XmlNodeList children = node.ChildNodes;
            foreach (XmlNode nodeItem in children)
            {
                string name = nodeItem.Name.ToLower().Trim();

                if (name == "id")
                    ID = HelperXML.GetGuid(nodeItem);
                else if (name == "username")
                    UserName = nodeItem.InnerText;
                else if (name == "firstname")
                    FirstName = nodeItem.InnerText;
                else if (name == "lastname")
                    LastName = nodeItem.InnerText;
                else if (name == "email")
                    EMail = nodeItem.InnerText;
                else if (name == "birthday")
                    Birthday = HelperXML.GetDateTime(nodeItem);
                else if (name == "sex")
                {
                    string sex = node.InnerText.ToLower().Trim();
                    if (sex == "male") UserSex = Sex.male;
                    else if (sex == "female") UserSex = Sex.female;
                    else UserSex = Sex.Unknown;
                }
                else if (name == "status")
                    Status = (EmployeeStatus)HelperXML.GetInt32(nodeItem);
                else if (name == "terminated")
                    Terminated = HelperXML.GetDateTime(nodeItem);
                else if (name == "department")
                    Department = nodeItem.InnerText;
                else if (name == "workfrom")
                    WorkFrom = HelperXML.GetDateTime(nodeItem);
                else if (name == "displayname")
                    DisplayName = nodeItem.InnerText;
                else if (name == "location")
                    Location = nodeItem.InnerText;
                else if (name == "notes")
                    Notes = nodeItem.InnerText;
                else if (name == "title")
                    Title = nodeItem.InnerText;
                else if (name == "avatarmedium")
                    AvatarMediumURL = nodeItem.InnerText;
                else if (name == "avatar")
                    AvatarURL = nodeItem.InnerText;
                else if (name == "avatarsmall")
                    AvatarSmallURL = nodeItem.InnerText;
                else if (name == "contacts")
                {
                    Contact item = new Contact();

                    foreach (XmlNode nodeItemChild in nodeItem.ChildNodes)
                    {
                        string nodeItemChildName = nodeItemChild.Name.ToLower().Trim();

                        if (nodeItemChildName == "type")
                        {
                            item.Type = nodeItemChild.InnerText;
                        }
                        else if (nodeItemChildName == "value")
                        {
                            item.Value = nodeItemChild.InnerText;
                        }
                    }

                    Contacts.Add(item);
                }
                else if (name == "groups")
                {
                    GroupShort item = new GroupShort();

                    foreach (XmlNode nodeItemChild in nodeItem.ChildNodes)
                    {
                        string nodeItemChildName = nodeItemChild.Name.ToLower().Trim();

                        if (nodeItemChildName == "id")
                        {
                            item.ID = HelperXML.GetGuid(nodeItemChild);
                        }
                        else if (nodeItemChildName == "name")
                        {
                            item.Name = nodeItemChild.InnerText;
                        }
                        else if (nodeItemChildName == "manager")
                        {
                            item.Manager = nodeItemChild.InnerText;
                        }
                    }

                    Groups.Add(item);
                }
            }
        }