/// <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));
        }
Esempio n. 2
0
        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);
 }