/// <summary>
        /// Extracts changing information from XML element
        /// </summary>
        /// <param name="chgElement">XML element containing the authentication information and registrant's login</param>
        /// <returns>ChangeType object, containing information about authentication information and registrant's login</returns>
        public static DomainChangeType Extract(XElement chgElement)
        {
            var registrant = chgElement
                             .Elements()
                             .FirstOrDefault(elem => elem.Name.LocalName == "registrant")
                             .Value;
            var auth = chgElement
                       .Elements()
                       .Where(elem => elem.Name.LocalName == "authInfo")
                       .Select(authInfo => AuthInfo.Extract(authInfo))
                       .FirstOrDefault();
            DomainChangeType chgType;

            if (registrant != null)
            {
                chgType = new DomainChangeType(registrant);
                if (auth != null)
                {
                    chgType.Auth = auth;
                }
            }
            else
            {
                chgType = new DomainChangeType(auth);
            }

            return(chgType);
        }
Beispiel #2
0
        /// <summary>
        /// Extracts data from XML element
        /// </summary>
        /// <param name="objectElement">Object XML element</param>
        public void Extract(XElement objectElement)
        {
            this.Id   = objectElement.Element(SchemaHelper.ContactNs.GetName("id")).Value;
            this.Roid = objectElement.Element(SchemaHelper.ContactNs.GetName("roid")).Value;

            this.Status = objectElement
                          .Elements(SchemaHelper.ContactNs.GetName("status"))
                          .Select(status => StatusInfo.Extract(status))
                          .ToList();

            this.PostalInfos = objectElement.Elements(SchemaHelper.ContactNs.GetName("postalInfo"))
                               .Select(pos => PostalInfo.Extract(pos))
                               .ToList();

            this.Voice = objectElement
                         .Elements(SchemaHelper.ContactNs.GetName("voice"))
                         .Select(voice => VoiceInfo.Extract(voice))
                         .FirstOrDefault();

            this.Fax = objectElement
                       .Elements(SchemaHelper.ContactNs.GetName("fax"))
                       .Select(fax => fax.Value)
                       .FirstOrDefault();
            var email = objectElement.Element(SchemaHelper.ContactNs.GetName("email"));

            this.Email = email == null ? null : email.Value;

            var clientId = objectElement.Element(SchemaHelper.ContactNs.GetName("clID"));

            this.ClientId = clientId == null ? null : clientId.Value;

            var creadteId = objectElement.Element(SchemaHelper.ContactNs.GetName("crID"));

            this.CreateId = creadteId == null ? null : creadteId.Value;

            var createDate = objectElement.Element(SchemaHelper.ContactNs.GetName("crDate"));

            this.CreateDate = createDate == null ? (DateTime?)null : DateTime.Parse(createDate.Value).ToUniversalTime();

            var updateIdElement = objectElement.Element(SchemaHelper.ContactNs.GetName("upID"));

            this.UpdateId = updateIdElement == null ? null : updateIdElement.Value;

            var updateDateElement = objectElement.Element(SchemaHelper.ContactNs.GetName("upDate"));

            this.UpdateDate = updateDateElement == null ? (DateTime?)null : DateTime.Parse(updateDateElement.Value).ToUniversalTime();

            var transferDateElement = objectElement.Element(SchemaHelper.ContactNs.GetName("trDate"));

            this.TransferDate = transferDateElement == null ? (DateTime?)null : DateTime.Parse(transferDateElement.Value).ToUniversalTime();

            this.Auth = objectElement
                        .Elements(SchemaHelper.ContactNs.GetName("authInfo"))
                        .Select(authInfo => AuthInfo.Extract(authInfo))
                        .FirstOrDefault();

            this.Disclose = objectElement
                            .Elements(SchemaHelper.ContactNs.GetName("disclose"))
                            .Select(dis =>
            {
                bool discloseFlag;
                if (!Boolean.TryParse(dis.Attribute("flag").Value, out discloseFlag))
                {
                    discloseFlag = Int32.Parse(dis.Attribute("flag").Value) != 0;
                }

                var disclose = new Disclose(discloseFlag);

                if (dis.Elements() != null)
                {
                    var elements = new List <string>();
                    foreach (var element in dis.Elements())
                    {
                        elements.Add(element.Name.LocalName);
                    }

                    disclose.DisclosingFields = elements;
                }

                return(disclose);
            })
                            .FirstOrDefault();
        }
        /// <summary>
        /// Extracts data from XML element
        /// </summary>
        /// <param name="objectElement">Object XML element</param>
        public void Extract(XElement objectElement)
        {
            this.DomainName = objectElement.Element(SchemaHelper.DomainNs.GetName("name")).Value;
            this.ROID       = objectElement.Element(SchemaHelper.DomainNs.GetName("roid")).Value;
            this.Statuses   = objectElement
                              .Elements(SchemaHelper.DomainNs.GetName("status"))
                              .Select(statusElem =>
            {
                var status        = EnumParser.ToEnum <Status>((string)statusElem.Attribute("s").Value);
                var statusText    = statusElem.Value;
                var langAttribute = statusElem.Attribute("lang");
                var lang          = langAttribute == null ? "en" : langAttribute.Value;
                return(new StatusInfo(status, statusText, lang));
            })
                              .ToList();

            var registrantElem = objectElement.Element(SchemaHelper.DomainNs.GetName("registrant"));

            this.Registrant = registrantElem == null ? null : registrantElem.Value;

            this.Contacts = objectElement
                            .Elements(SchemaHelper.DomainNs.GetName("contact"))
                            .Select(contactElem => DomainContactInfo.Extract(contactElem))
                            .ToList();

            var nameServersElement = objectElement.Element(SchemaHelper.DomainNs.GetName("ns"));

            this.NameServers = nameServersElement != null?NameServerList.Extract(nameServersElement) : new NameServerList();

            this.Hosts = objectElement.Elements(SchemaHelper.DomainNs.GetName("host")).Select(elem => elem.Value).ToList();

            this.SponsoringClientId = objectElement.Element(SchemaHelper.DomainNs.GetName("clID")).Value;

            var creatorIDElem = objectElement.Element(SchemaHelper.DomainNs.GetName("crID"));

            this.CreatorClientId = creatorIDElem == null ? null : creatorIDElem.Value;

            var creationDateElem = objectElement.Element(SchemaHelper.DomainNs.GetName("crDate"));

            this.CreationDate = creationDateElem == null ? (DateTime?)null : DateTime.Parse(creationDateElem.Value).ToUniversalTime();

            var expirationDateElem = objectElement.Element(SchemaHelper.DomainNs.GetName("exDate"));

            this.ExpirationDate = expirationDateElem == null ? (DateTime?)null : DateTime.Parse(expirationDateElem.Value).ToUniversalTime();

            var updaterIDElem = objectElement.Element(SchemaHelper.DomainNs.GetName("upID"));

            this.UpdaterClientId = updaterIDElem == null ? null : updaterIDElem.Value;

            var updateDateElem = objectElement.Element(SchemaHelper.DomainNs.GetName("upDate"));

            this.UpdateDate = updateDateElem == null ? (DateTime?)null : DateTime.Parse(updateDateElem.Value).ToUniversalTime();

            var transDateElem = objectElement.Element(SchemaHelper.DomainNs.GetName("trDate"));

            this.TransferDate = transDateElem == null ? (DateTime?)null : DateTime.Parse(transDateElem.Value).ToUniversalTime();

            var authInfoElem = objectElement.Element(SchemaHelper.DomainNs.GetName("authInfo"));

            if (authInfoElem != null)
            {
                this.AuthInfo = AuthInfo.Extract(authInfoElem);
            }
        }