/// <summary> /// Provides and indication if any values have been set in <see cref="DescriptorRequest"/> /// </summary> /// <param name="descriptor"> /// The descriptor. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public static bool HasValues(this DescriptorRequest descriptor) { var values = new[] { descriptor.Name, descriptor.Url, descriptor.Phone }; var all = string.Join(" ", values).Trim(); return(!string.IsNullOrEmpty(all)); }
public Subscription CreateSubscription(SubscriptionPlan plan, string paymentMethodToken, DateTimeOffset trialEndDate) { var descriptor = new DescriptorRequest { Name = GetSubscriptionPlanDescriptor(plan) }; var now = DateTimeOffset.Now; var trialDuration = now > trialEndDate ? TimeSpan.Zero : trialEndDate - now; var trialDurationDays = trialDuration > TimeSpan.Zero ? (int)Math.Floor(trialDuration.TotalDays) : 0; var request = new SubscriptionRequest { PaymentMethodToken = paymentMethodToken, PlanId = plan.ToString(), Descriptor = descriptor, TrialDuration = trialDurationDays, TrialDurationUnit = SubscriptionDurationUnit.DAY, HasTrialPeriod = trialDurationDays > 0 }; var result = Gateway.Subscription.Create(request); if (result.IsSuccess()) { return(result.Target); } else { throw new Exception(result.Message); } }
/// <summary> /// This method will have all the inputs provided by the user in form inputs and here we assign those values to a private variable for further execution /// </summary> /// <param name="data">list of all the form inputs provide by user </param> public override void ConsumeData(IDictionary <string, object> data) { if (data != null) { if (data.ContainsKey(ENVIRONMENT_INPUT)) { object value = data[ENVIRONMENT_INPUT]; if (value != null) { this.enviornment = (string)value; } } if (data.ContainsKey(MERCHANT_ID_INPUT)) { object value = data[MERCHANT_ID_INPUT]; if (value != null) { this.merchantId = (string)value; } } if (data.ContainsKey(PUBLIC_KEY_INPUT)) { object value = data[PUBLIC_KEY_INPUT]; if (value != null) { this.publicKey = (string)value; } } if (data.ContainsKey(PRIVATE_KEY_INPUT)) { object value = data[PRIVATE_KEY_INPUT]; if (value != null) { this.privateKey = (string)value; } } if (data.ContainsKey(AMOUNT_INPUT)) { object value = data[AMOUNT_INPUT]; if (value != null) { this.amount = (decimal)value; } } if (data.ContainsKey(MERCHANT_ACCOUNT_INPUT)) { object value = data[MERCHANT_ACCOUNT_INPUT]; if (value != null) { this.merchantAccount = (string)value; } } if (data.ContainsKey(FIRST_NAME_INPUT)) { object value = data[FIRST_NAME_INPUT]; if (value != null) { this.firstName = (string)value; } } if (data.ContainsKey(LAST_NAME_INPUT)) { object value = data[LAST_NAME_INPUT]; if (value != null) { this.lastName = (string)value; } } if (data.ContainsKey(ORDER_ID_INPUT)) { object value = data[ORDER_ID_INPUT]; if (value != null) { this.orderId = (string)value; } } if (data.ContainsKey(DESCRIPTOR_REQUEST_INPUT)) { object value = data[DESCRIPTOR_REQUEST_INPUT]; if (value != null) { this.descriptorRequest = (DescriptorRequest)value; } } } base.ConsumeData(data); }