Пример #1
0
 public BillingSubscriptionItem(Braintree.Plan plan)
 {
     Name     = plan.Name;
     Amount   = plan.Price.GetValueOrDefault();
     Interval = plan.BillingFrequency.GetValueOrDefault() == 12 ? "year" : "month";
     Quantity = 1;
 }
Пример #2
0
 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();
 }
Пример #3
0
            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;
                }
            }