/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="version"></param> /// <returns></returns> protected override bool TryParseElement(XmlReader reader, string version) { if (reader.IsReadingElementOf(OpdsNamespaces.Opds.Value, "price")) { var price = new OpdsPrice(); if (reader.HasAttributes) { if (reader.MoveToAttribute("currencycode")) { if (reader.ReadAttributeValue()) { price.CurrencyCode = reader.Value; if (!CurrencyCodes.IsValid(price.CurrencyCode)) { // TODO: Show Warning. } } reader.MoveToElement(); } } price.Price = reader.ReadElementContentAsDecimal(); prices.Add(price); } else if (reader.IsReadingElementOf(OpdsNamespaces.Opds.Value, "indirectAcquisition")) { ReadIndirectAcquisitions(reader, IndirectAcquisitions); } else { return(base.TryParseElement(reader, version)); } return(true); }
public void IsValidCurrencyCodeTest() { Assert.AreEqual(true, CurrencyCodes.IsValid("CNY")); Assert.AreEqual(true, CurrencyCodes.IsValid("USD")); Assert.AreEqual(false, CurrencyCodes.IsValid("BTC")); }