private static ApiKeyInfo ParseApiKeyInfoXml(XElement result) { DateTimeOffset expiry = default(DateTimeOffset); int accessMask = 0; var type = ApiKeyType.Invalid; ApiKeyInfo keyInfo = null; IEnumerable <AccountCharacter> chars = new AccountCharacter[0]; // get the key element in the result XElement keyElement = result.Element(ApiConstants.Key); if (keyElement != null) { // get details from the attributes foreach (XAttribute attribute in keyElement.Attributes()) { switch (attribute.Name.LocalName) { case "accessMask": int.TryParse(attribute.Value, out accessMask); break; case "type": Enum.TryParse(attribute.Value, out type); break; case "expires": DateTime temp; expiry = DateTime.TryParse(attribute.Value, out temp) ? new DateTimeOffset(temp, TimeSpan.Zero) : default(DateTimeOffset); break; } } // get the character rowset that might be present in the result XElement characterSet = keyElement.Element(ApiConstants.Rowset); if (characterSet != null) { chars = GetCharactersFromRowSet(characterSet); } keyInfo = new ApiKeyInfo { AccessMask = accessMask, ApiType = type, Expires = expiry, Characters = chars }; } return(keyInfo); }
private static ApiKeyInfo ParseApiKeyInfoXml(XElement result) { DateTimeOffset expiry = default(DateTimeOffset); int accessMask = 0; var type = ApiKeyType.Invalid; ApiKeyInfo keyInfo = null; IEnumerable<AccountCharacter> chars = new AccountCharacter[0]; // get the key element in the result XElement keyElement = result.Element(ApiConstants.Key); if (keyElement != null) { // get details from the attributes foreach (XAttribute attribute in keyElement.Attributes()) { switch (attribute.Name.LocalName) { case "accessMask": int.TryParse(attribute.Value, out accessMask); break; case "type": Enum.TryParse(attribute.Value, out type); break; case "expires": DateTime temp; expiry = DateTime.TryParse(attribute.Value, out temp) ? new DateTimeOffset(temp, TimeSpan.Zero) : default(DateTimeOffset); break; } } // get the character rowset that might be present in the result XElement characterSet = keyElement.Element(ApiConstants.Rowset); if (characterSet != null) { chars = GetCharactersFromRowSet(characterSet); } keyInfo = new ApiKeyInfo {AccessMask = accessMask, ApiType = type, Expires = expiry, Characters = chars}; } return keyInfo; }