public BillingSubscriptionItem(Braintree.Plan plan) { Name = plan.Name; Amount = plan.Price.GetValueOrDefault(); Interval = plan.BillingFrequency.GetValueOrDefault() == 12 ? "year" : "month"; Quantity = 1; }
public BillingSubscriptionItem(Braintree.Plan plan, Braintree.AddOn addon) { Name = addon.Name; Amount = addon.Amount.GetValueOrDefault(); Interval = plan.BillingFrequency.GetValueOrDefault() == 12 ? "year" : "month"; Quantity = addon.Quantity.GetValueOrDefault(); }
public BillingSubscription(Braintree.Subscription sub, Braintree.Plan plan) { Status = sub.Status.ToString(); if (sub.HasTrialPeriod.GetValueOrDefault() && sub.CreatedAt.HasValue && sub.TrialDuration.HasValue) { TrialStartDate = sub.CreatedAt.Value; if (sub.TrialDurationUnit == Braintree.SubscriptionDurationUnit.DAY) { TrialEndDate = TrialStartDate.Value.AddDays(sub.TrialDuration.Value); } else { TrialEndDate = TrialStartDate.Value.AddMonths(sub.TrialDuration.Value); } } PeriodStartDate = sub.BillingPeriodStartDate; PeriodEndDate = sub.BillingPeriodEndDate; CancelAtEndDate = !sub.NeverExpires.GetValueOrDefault(); Cancelled = sub.Status == Braintree.SubscriptionStatus.CANCELED; if (Cancelled) { CancelledDate = sub.UpdatedAt.Value; } var items = new List <BillingSubscriptionItem>(); items.Add(new BillingSubscriptionItem(plan)); if (sub.AddOns != null) { items.AddRange(sub.AddOns.Select(a => new BillingSubscriptionItem(plan, a))); } if (items.Count > 0) { Items = items; } }