protected void WriteSubscriptionXml(XmlTextWriter xmlWriter)
{
xmlWriter.WriteStartElement("subscription"); // Start: subscription
xmlWriter.WriteElementString("plan_code", _planCode);
xmlWriter.WriteElementString("currency", Currency);
xmlWriter.WriteIfCollectionHasAny("subscription_add_ons", AddOns);
xmlWriter.WriteStringIfValid("coupon_code", _couponCode);
if (UnitAmountInCents.HasValue)
{
xmlWriter.WriteElementString("unit_amount_in_cents", UnitAmountInCents.Value.AsString());
}
xmlWriter.WriteElementString("quantity", Quantity.AsString());
if (TrialPeriodEndsAt.HasValue)
{
xmlWriter.WriteElementString("trial_ends_at", TrialPeriodEndsAt.Value.ToString("s"));
}
if (StartsAt.HasValue)
{
xmlWriter.WriteElementString("starts_at", StartsAt.Value.ToString("s"));
}
if (TotalBillingCycles.HasValue)
{
xmlWriter.WriteElementString("total_billing_cycles", TotalBillingCycles.Value.AsString());
}
if (FirstRenewalDate.HasValue)
{
xmlWriter.WriteElementString("first_renewal_date", FirstRenewalDate.Value.ToString("s"));
}
if (CollectionMethod.Like("manual"))
{
xmlWriter.WriteElementString("collection_method", "manual");
xmlWriter.WriteElementString("net_terms", NetTerms.Value.AsString());
xmlWriter.WriteElementString("po_number", PoNumber);
}
else if (CollectionMethod.Like("automatic"))
{
xmlWriter.WriteElementString("collection_method", "automatic");
}
// <account> and billing info
Account.WriteXml(xmlWriter);
xmlWriter.WriteEndElement(); // End: subscription
}