internal override void ReadXml(XmlTextReader reader)
{
while (reader.Read())
{
// End of coupon element, get out of here
if ((reader.Name == "coupon" || reader.Name == "redemption") && reader.NodeType == XmlNodeType.EndElement)
break;
if (reader.NodeType != XmlNodeType.Element) continue;
string href;
switch (reader.Name)
{
case "uuid":
Uuid = reader.ReadElementContentAsString();
break;
case "account":
href = reader.GetAttribute("href");
AccountCode = Uri.UnescapeDataString(href.Substring(href.LastIndexOf("/") + 1));
break;
case "coupon":
href = reader.GetAttribute("href");
CouponCode =Uri.UnescapeDataString( href.Substring(href.LastIndexOf("/") + 1));
break;
case "single_use":
SingleUse = reader.ReadElementContentAsBoolean();
break;
case "total_discounted_in_cents":
int discountInCents;
if (Int32.TryParse(reader.ReadElementContentAsString(), out discountInCents))
TotalDiscountedInCents = discountInCents;
break;
case "currency":
Currency = reader.ReadElementContentAsString();
break;
case "state":
State = reader.ReadElementContentAsString();
break;
case "subscription_uuid":
SubscriptionUuid = reader.ReadElementContentAsString();
break;
case "created_at":
CreatedAt = reader.ReadElementContentAsDateTime();
break;
case "updated_at":
CreatedAt = reader.ReadElementContentAsDateTime();
break;
}
}
}