コード例 #1
0
        public async Task <Bundle> CreateSubscriptionsWithAddOns(IEnumerable <Subscription> subscriptions, RequestOptions inputOptions, DateTime?requestedDate = null, int?timeoutSec = null)
        {
            foreach (var subscription in subscriptions)
            {
                ValidateSubscription(subscription);
            }

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            if (timeoutSec.HasValue && timeoutSec.Value > 0)
            {
                queryParams.Add(Configuration.QUERY_CALL_COMPLETION, "true");
                queryParams.Add(Configuration.QUERY_CALL_TIMEOUT, timeoutSec.Value.ToString());
            }

            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToDateString());
            }

            // var httpTimeout = Math.Max(Configuration.DEFAULT_HTTP_TIMEOUT_SEC, timeoutSec ?? 0);
            var uri            = Configuration.SUBSCRIPTIONS_PATH + "/" + Configuration.CREATEENTITLEMENTS_WITHADDONS;
            var followLocation = inputOptions.FollowLocation ?? true;
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).WithFollowLocation(followLocation).Build();

            return(await _client.Post <Bundle>(uri, subscriptions, requestOptions));
        }
コード例 #2
0
        public async Task <Subscription> CreateSubscription(Subscription subscription, RequestOptions inputOptions, DateTime?requestedDate = null, bool?isMigrated = null)
        {
            ValidateSubscription(subscription);

            // var httpTimeout = Configuration.DEFAULT_HTTP_TIMEOUT_SEC;
            var followLocation = inputOptions.FollowLocation ?? true;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            // if (timeoutSec.HasValue)
            // {
            //     queryParams.Add(Configuration.QUERY_CALL_COMPLETION, timeoutSec.Value > 0 ? "true" : "false");
            //     queryParams.Add(Configuration.QUERY_CALL_TIMEOUT, timeoutSec.Value.ToString());
            //     timeoutSec = timeoutSec.Value;
            // }
            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToShortDateString());
            }

            if (isMigrated.HasValue)
            {
                queryParams.Add(Configuration.QUERY_MIGRATED, isMigrated.ToString());
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).WithFollowLocation(followLocation).Build();

            // return client.Post<Subscription>(Configuration.SUBSCRIPTIONS_PATH, subscription, requestOptions, httpTimeout);
            return(await _client.Post <Subscription>(Configuration.SUBSCRIPTIONS_PATH, subscription, requestOptions));
        }
コード例 #3
0
        public async Task CancelSubscription(Guid subscriptionId, RequestOptions inputOptions, DateTime?requestedDate = null, bool?useRequestedDateForBilling = null, EntitlementActionPolicy?entitlementPolicy = null, BillingActionPolicy?billingPolicy = null)
        {
            var uri         = Configuration.SUBSCRIPTIONS_PATH + "/" + subscriptionId;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            // if (timeoutSec.HasValue)
            // {
            //     queryParams.Add(Configuration.QUERY_CALL_COMPLETION, timeoutSec.Value > 0 ? "true" : "false");
            //     queryParams.Add(Configuration.QUERY_CALL_TIMEOUT, timeoutSec.Value.ToString());
            //     timeoutSec = timeoutSec.Value;
            // }
            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToShortDateString());
            }

            if (entitlementPolicy.HasValue)
            {
                queryParams.Add(Configuration.QUERY_ENTITLEMENT_POLICY, entitlementPolicy.ToString());
            }

            if (billingPolicy.HasValue)
            {
                queryParams.Add(Configuration.QUERY_BILLING_POLICY, billingPolicy.ToString());
            }

            if (useRequestedDateForBilling.HasValue)
            {
                queryParams.Add(Configuration.QUERY_USE_REQUESTED_DATE_FOR_BILLING, useRequestedDateForBilling.Value ? "true" : "false");
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();
            await _client.Delete(uri, requestOptions);
        }
コード例 #4
0
        public async Task <Subscription> UpdateSubscription(Subscription subscription, RequestOptions inputOptions, BillingActionPolicy?billingPolicy = null, DateTime?requestedDate = null, bool?isMigrated = null)
        {
            if (subscription.SubscriptionId.Equals(Guid.Empty))
            {
                throw new ArgumentException("Subscription#subscriptionId cannot be empty");
            }

            ValidateSubscription(subscription, false);

            var uri         = Configuration.SUBSCRIPTIONS_PATH + "/" + subscription.SubscriptionId;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            // if (timeoutSec.HasValue)
            // {
            //     queryParams.Add(Configuration.QUERY_CALL_COMPLETION, timeoutSec.Value > 0 ? "true" : "false");
            //     queryParams.Add(Configuration.QUERY_CALL_TIMEOUT, timeoutSec.Value.ToString());
            //     timeoutSec = timeoutSec.Value;
            // }
            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToShortDateString());
            }

            if (billingPolicy.HasValue)
            {
                queryParams.Add(Configuration.QUERY_BILLING_POLICY, billingPolicy.ToString());
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Put <Subscription>(uri, subscription, requestOptions));
        }
コード例 #5
0
        private async Task <IEnumerable <InvoiceItem> > CreateExternalCharges(Guid accountId, IEnumerable <InvoiceItem> externalCharges, DateTime?requestedDate, bool autoPay, bool autoCommit, string paymentExternalKey, string transactionExternalKey, RequestOptions inputOptions)
        {
            var uri = Configuration.INVOICES_PATH + "/" + Configuration.CHARGES + "/" + accountId;

            var queryParams = new MultiMap <string>();

            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToDateString());
            }

            queryParams.Add(Configuration.QUERY_PAY_INVOICE, autoPay.ToString());
            queryParams.Add(Configuration.QUERY_AUTO_COMMIT, autoCommit.ToString());

            if (!string.IsNullOrEmpty(paymentExternalKey))
            {
                queryParams.Add(Configuration.QUERY_PAYMENT_EXT_KEY, paymentExternalKey);
            }

            if (!string.IsNullOrEmpty(transactionExternalKey))
            {
                queryParams.Add(Configuration.QUERY_TRANSACTION_EXT_KEY, transactionExternalKey);
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Post <List <InvoiceItem> >(uri, externalCharges, requestOptions));
        }
コード例 #6
0
        public async Task <Account> CreateAccount(Account account, RequestOptions inputOptions)
        {
            var followLocation = inputOptions.FollowLocation ?? true;
            var requestOptions = inputOptions.Extend().WithFollowLocation(followLocation).Build();

            return(await _client.Post <Account>(Configuration.ACCOUNTS_PATH, account, requestOptions));
        }
コード例 #7
0
        public async Task <Tenant> GetTenant(string apiKey, RequestOptions inputOptions)
        {
            var uri         = Configuration.TENANTS_PATH;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_API_KEY, apiKey);
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Tenant>(uri, requestOptions));
        }
コード例 #8
0
        public async Task <Credit> GetCredit(Guid creditId, RequestOptions inputOptions, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri         = Configuration.CREDITS_PATH + "/" + creditId;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Credit>(uri, requestOptions));
        }
コード例 #9
0
        public async Task DeletePaymentMethod(Guid paymentMethodId, RequestOptions inputOptions, bool deleteDefault = false, bool forceDeleteDefault = false)
        {
            var uri         = Configuration.PAYMENT_METHODS_PATH + "/" + paymentMethodId;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_DELETE_DEFAULT_PM_WITH_AUTO_PAY_OFF, deleteDefault.ToString());
            queryParams.Add(Configuration.QUERY_FORCE_DEFAULT_PM_DELETION, forceDeleteDefault.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();
            await _client.Delete(uri, requestOptions);
        }
コード例 #10
0
        public async Task <Account> UpdateAccount(Account account, bool treatNullAsReset, RequestOptions inputOptions)
        {
            var uri         = Configuration.ACCOUNTS_PATH + "/" + account.AccountId;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_ACCOUNT_TREAT_NULL_AS_RESET, treatNullAsReset ? "true" : "false");
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Put <Account>(uri, account, requestOptions));
        }
コード例 #11
0
        public async Task <InvoicePayments> GetInvoicePaymentsForAccount(Guid accountId, RequestOptions inputOptions, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.INVOICE_PAYMENTS;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <InvoicePayments>(uri, requestOptions));
        }
コード例 #12
0
        // TENANT KEY
        public async Task <TenantKey> RegisterCallBackNotificationForTenant(string callback, RequestOptions inputOptions)
        {
            var uri            = Configuration.TENANTS_PATH + "/" + Configuration.REGISTER_NOTIFICATION_CALLBACK;
            var followLocation = inputOptions.FollowLocation ?? true;
            var queryParams    = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_NOTIFICATION_CALLBACK, callback);
            var requestOptions = inputOptions.Extend().WithFollowLocation(followLocation).WithQueryParams(queryParams).Build();

            return(await _client.Post <TenantKey>(uri, null, requestOptions));
        }
コード例 #13
0
        // ACCOUNT TIMELINE
        public async Task <AccountTimeline> GetAccountTimeline(Guid accountId, RequestOptions inputOptions, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.TIMELINE;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <AccountTimeline>(uri, requestOptions));
        }
コード例 #14
0
        public async Task <Bundles> GetAccountBundles(Guid accountId, string externalKey, RequestOptions inputOptions)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.BUNDLES;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_EXTERNAL_KEY, externalKey);
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Bundles>(uri, requestOptions));
        }
コード例 #15
0
        public async Task <List <PlanDetail> > GetAvailableAddons(string baseProductName, RequestOptions inputOptions)
        {
            var uri = Configuration.CATALOG_PATH + "/" + Configuration.AVAILABLEADDONS;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add("baseProductName", baseProductName);

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <List <PlanDetail> >(uri, requestOptions));
        }
コード例 #16
0
        // PAYMENT METHODS
        public async Task <PaymentMethod> GetPaymentMethod(Guid paymentMethodId, RequestOptions inputOptions, bool withPluginInfo = false, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.PAYMENT_METHODS_PATH + "/" + paymentMethodId;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_WITH_PLUGIN_INFO, withPluginInfo.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <PaymentMethod>(uri, requestOptions));
        }
コード例 #17
0
        // BUNDLES
        public async Task <Bundles> GetBundles(RequestOptions inputOptions, long offset = 0L, long limit = 100L, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri         = Configuration.BUNDLES_PATH + "/" + Configuration.PAGINATION;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_SEARCH_OFFSET, offset.ToString());
            queryParams.Add(Configuration.QUERY_SEARCH_LIMIT, limit.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Bundles>(uri, requestOptions));
        }
コード例 #18
0
        public async Task <Account> GetAccount(string externalKey, RequestOptions inputOptions, bool withBalance = false, bool withCba = false)
        {
            var uri         = Configuration.ACCOUNTS_PATH;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_EXTERNAL_KEY, externalKey);
            queryParams.Add(Configuration.QUERY_ACCOUNT_WITH_BALANCE, withBalance ? "true" : "false");
            queryParams.Add(Configuration.QUERY_ACCOUNT_WITH_BALANCE_AND_CBA, withCba ? "true" : "false");
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Account>(uri, requestOptions));
        }
コード例 #19
0
        // INVOICE
        public async Task <Invoice> CreateInvoice(Guid accountId, DateTime futureDate, RequestOptions inputOptions)
        {
            var followLocation = inputOptions.FollowLocation ?? true;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_ACCOUNT_ID, accountId.ToString());
            queryParams.Add(Configuration.QUERY_TARGET_DATE, futureDate.ToDateString());

            var requestOptions = inputOptions.Extend().WithFollowLocation(followLocation).WithQueryParams(queryParams).Build();

            return(await _client.Post <Invoice>(Configuration.INVOICES_PATH, null, requestOptions));
        }
コード例 #20
0
        public async Task <PaymentMethods> GetPaymentMethodsForAccount(Guid accountId, RequestOptions inputOptions, Dictionary <string, string> pluginProperties = null, bool withPluginInfo = false, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.PAYMENT_METHODS;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_WITH_PLUGIN_INFO, withPluginInfo.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());
            StorePluginPropertiesAsParams(pluginProperties, ref queryParams);
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <PaymentMethods>(uri, requestOptions));
        }
コード例 #21
0
        private async Task <Invoice> GetInvoiceByIdOrNumber(string invoiceIdOrNumber, RequestOptions inputOptions, bool withItems = false, bool withChildrenItems = false, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.INVOICES_PATH + "/" + invoiceIdOrNumber;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_INVOICE_WITH_ITEMS, withItems.ToString());
            queryParams.Add(Configuration.QUERY_INVOICE_WITH_CHILDREN_ITEMS, withChildrenItems.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Invoice>(uri, requestOptions));
        }
コード例 #22
0
        public async Task <Accounts> GetAccounts(long offset, long limit, RequestOptions inputOptions, AuditLevel auditLevel = AuditLevel.NONE)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + Configuration.PAGINATION;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_SEARCH_OFFSET, offset.ToString());
            queryParams.Add(Configuration.QUERY_SEARCH_LIMIT, limit.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Accounts>(uri, requestOptions));
        }
コード例 #23
0
        // CATALOG
        public async Task <List <Catalog> > GetCatalogJson(RequestOptions inputOptions, DateTime?requestedDate = null)
        {
            var uri         = Configuration.CATALOG_PATH;
            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToDateString());
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <List <Catalog> >(uri, requestOptions));
        }
コード例 #24
0
        public async Task <Bundle> GetBundle(string externalKey, RequestOptions inputOptions)
        {
            var uri = Configuration.BUNDLES_PATH;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_EXTERNAL_KEY, externalKey);

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            var bundles = await _client.Get <Bundles>(uri, requestOptions);

            return(bundles?.First());
        }
コード例 #25
0
        public async Task <Payment> CreatePayment(Guid accountId, Guid?paymentMethodId, PaymentTransaction paymentTransaction, List <string> controlPluginNames, Dictionary <string, string> pluginProperties, RequestOptions inputOptions)
        {
            var allowedTransactionTypes = new[] { "AUTHORIZE", "CREDIT", "PURCHASE" };

            if (accountId.Equals(Guid.Empty))
            {
                throw new ArgumentException("createPayment#accountId must not be empty");
            }

            if (paymentTransaction == null)
            {
                throw new ArgumentNullException(nameof(paymentTransaction));
            }

            if (!allowedTransactionTypes.Contains(paymentTransaction.TransactionType))
            {
                throw new ArgumentException("Invalid paymentTransaction type " + paymentTransaction.TransactionType);
            }

            if (paymentTransaction.Amount <= 0)
            {
                throw new ArgumentException("PaymentTransaction#amount cannot be 0 or less");
            }

            if (paymentTransaction.Currency == null)
            {
                throw new ArgumentException("PaymentTransaction#currency cannot be null");
            }

            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.PAYMENTS;

            var param = new MultiMap <string>().Create(inputOptions.QueryParams);

            if (paymentMethodId.HasValue)
            {
                param.Add("paymentMethodId", paymentMethodId.ToString());
            }

            if (controlPluginNames != null && controlPluginNames.Count > 0)
            {
                param.PutAll(Configuration.CONTROL_PLUGIN_NAME, controlPluginNames);
            }

            StorePluginPropertiesAsParams(pluginProperties, ref param);
            var followLocation = inputOptions.FollowLocation ?? true;
            var requestOptions = inputOptions.Extend().WithQueryParams(param).WithFollowLocation(followLocation).Build();

            return(await _client.Post <Payment>(uri, paymentTransaction, requestOptions));
        }
コード例 #26
0
        private async Task <Invoices> SearchInvoices(string key, long offset, long limit, AuditLevel auditLevel, RequestOptions inputOptions)
        {
            var utf = Encoding.UTF8.GetBytes(key);
            var uri = Configuration.INVOICES_PATH + "/" + Configuration.SEARCH + "/" + Encoding.UTF8.GetString(utf);

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_SEARCH_OFFSET, offset.ToString());
            queryParams.Add(Configuration.QUERY_SEARCH_LIMIT, limit.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Invoices>(uri, requestOptions));
        }
コード例 #27
0
        public async Task <Invoices> GetInvoices(bool withItems, long offset, long limit, RequestOptions inputOptions, AuditLevel auditLevel = AuditLevel.NONE)
        {
            var uri = Configuration.INVOICES_PATH + "/" + Configuration.PAGINATION;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_SEARCH_OFFSET, offset.ToString());
            queryParams.Add(Configuration.QUERY_SEARCH_LIMIT, limit.ToString());
            queryParams.Add(Configuration.QUERY_INVOICE_WITH_ITEMS, withItems.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Invoices>(uri, requestOptions));
        }
コード例 #28
0
        public async Task <Invoices> GetInvoicesForAccount(Guid accountId, RequestOptions inputOptions, bool withItems = false, bool unpaidOnly = false, bool includeMigrationInvoices = false, AuditLevel auditLevel = DefaultAuditLevel)
        {
            var uri = Configuration.ACCOUNTS_PATH + "/" + accountId + "/" + Configuration.INVOICES;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_INVOICE_WITH_ITEMS, withItems.ToString());
            queryParams.Add(Configuration.QUERY_UNPAID_INVOICES_ONLY, unpaidOnly.ToString());
            queryParams.Add(Configuration.QUERY_WITH_MIGRATION_INVOICES, includeMigrationInvoices.ToString());
            queryParams.Add(Configuration.QUERY_AUDIT, auditLevel.ToString());

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <Invoices>(uri, requestOptions));
        }
コード例 #29
0
        // PRICE LIST
        public async Task <PriceList> GetPriceListFromSubscription(Guid subscriptionId, RequestOptions inputOptions, DateTime?requestedDate = null)
        {
            var uri = Configuration.CATALOG_PATH + "/" + Configuration.PRICELIST;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            queryParams.Add(Configuration.QUERY_SUBSCRIPTION_ID, subscriptionId.ToString());
            if (requestedDate.HasValue)
            {
                queryParams.Add(Configuration.QUERY_REQUESTED_DT, requestedDate.Value.ToDateString());
            }

            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            return(await _client.Get <PriceList>(uri, requestOptions));
        }
コード例 #30
0
        public async Task UncancelSubscription(Guid subscriptionId, RequestOptions inputOptions, Dictionary <string, string> pluginProperties = null)
        {
            if (subscriptionId == Guid.Empty)
            {
                throw new ArgumentNullException(nameof(subscriptionId));
            }

            var uri = Configuration.SUBSCRIPTIONS_PATH + "/" + subscriptionId + "/" + Configuration.UNCANCEL;

            var queryParams = new MultiMap <string>().Create(inputOptions.QueryParams);

            StorePluginPropertiesAsParams(pluginProperties, ref queryParams);
            var requestOptions = inputOptions.Extend().WithQueryParams(queryParams).Build();

            await _client.Put(uri, null, requestOptions);
        }