/// <summary> /// When overridden in a descendant class, deserializes the object from an XML according to Aadhaar API specification. /// </summary> /// <param name="element">An instance of <see cref="XElement"/>.</param> protected override void DeserializeXml(XElement element) { base.DeserializeXml(element); Uses = new AuthUsage(element.Element("Uses")); var info = element.Attribute("info")?.Value; Info = info != null ? new AuthInfo { InfoValue = info } : null; var tkn = element.Element("Tkn"); Token = tkn != null ? new Token(tkn) : null; }
/// <summary> /// When overridden in a descendant class, deserializes the object from an XML according to Aadhaar API specification. /// </summary> /// <param name="element">An instance of <see cref="XElement"/>.</param> protected override void DeserializeXml(XElement element) { base.DeserializeXml(element); AadhaarNumber = element.Attribute("uid").Value; Uses = new AuthUsage(element.Element("Uses")); DeviceInfo = new Metadata(element.Element("Meta")); KeyInfo = new SessionKeyInfo(element.Element("Skey")); Data = new EncryptedData(element.Element("Data")); Hmac = element.Element("Hmac").Value; var tkn = element.Element("Tkn"); Token = tkn != null ? new Token(tkn) : null; }
/// <summary> /// When overridden in a descendant class, deserializes the object from an XML according to Aadhaar API specification. /// </summary> /// <param name="element">An instance of <see cref="XElement"/>.</param> protected override void DeserializeXml(XElement element) { base.DeserializeXml(element); HasResidentConsent = element.Attribute("rc").Value[0] == AadhaarHelper.YesUpper; Uses = new AuthUsage(element.Element("Uses")); var info = element.Attribute("info")?.Value; AuthInfo = info != null ? new AuthInfo { InfoValue = info } : null; var tkn = element.Element("Tkn"); Token = tkn != null ? new Token(tkn) : null; }
public void FromXmlTest() { /* * Assume: ToXml(string) is correct. */ var authUsage = new AuthUsage(); var xml = XElement.Parse(File.ReadAllText(Data.AuthUsageXml)).Elements().ToArray(); // Validate null argument. Assert.Throws <ArgumentNullException>("element", () => authUsage.FromXml(null)); // XML must be same after loading and deserializing it. foreach (var element in xml) { authUsage.FromXml(element); Assert.True(XNode.DeepEquals(element, authUsage.ToXml("Uses"))); } }