public virtual RequestBuilder BuildRequest(string root) { var builder = new RequestBuilder(root); builder.AddElement("billing-day-of-month", BillingDayOfMonth); builder.AddElement("descriptor", Descriptor); builder.AddElement("first-billing-date", FirstBillingDate); builder.AddElement("payment-method-token", PaymentMethodToken); builder.AddElement("payment-method-nonce", PaymentMethodNonce); if (HasTrialPeriod.HasValue) { builder.AddElement("trial-period", HasTrialPeriod.Value); if (HasTrialPeriod.Value) { if (TrialDuration != 0) { builder.AddElement("trial-duration", TrialDuration.ToString()); } if (TrialDurationUnit != null) { builder.AddElement("trial-duration-unit", TrialDurationUnit.GetDescription()); } } } builder.AddElement("merchant-account-id", MerchantAccountId); if (NumberOfBillingCycles.HasValue) { builder.AddElement("number-of-billing-cycles", NumberOfBillingCycles.Value); } if (NeverExpires.HasValue) { builder.AddElement("never-expires", NeverExpires.Value); } builder.AddElement("id", Id); builder.AddElement("plan-id", PlanId); if (Price.HasValue) { builder.AddElement("price", Price.Value); } builder.AddElement("add-ons", AddOns); builder.AddElement("discounts", Discounts); builder.AddElement("options", Options); return(builder); }
/// <summary> /// Validates each of the basic trial elements, then requires validation from /// the TrialObjectsUI and QuestionnaireUI. Highlights offending elements, then /// returns a descriptive error through ErrorString. /// </summary> /// <param name="ErrorString">Contains validation error messages.</param> /// <returns>True if validation succeeds, false otherwise.</returns> public override bool Validate(out string ErrorString) { //Test each UI element, failing out on first failure. bool isValid = NumberOfTrials.Validate(out ErrorString); if (isValid) { isValid = NumberUnusualTrials.Validate(out ErrorString); } if (isValid) { isValid = TrialDuration.Validate(out ErrorString); } if (isValid) { isValid = TrialObjectsUI.Validate(out ErrorString); } if (isValid) { isValid = QuestionnaireUI.Validate(out ErrorString); } return(isValid); }