Пример #1
0
        /// <summary>
        /// Create the product upgrade request.
        /// </summary>
        /// <param name="newEntity">The product upgrade request.</param>
        /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
        /// <returns>The identifier for the product upgrade.</returns>
        public async Task <string> CreateAsync(ProductUpgradeRequest newEntity, CancellationToken cancellationToken = default)
        {
            newEntity.AssertNotNull(nameof(newEntity));

            HttpResponseMessage response = await Partner.ServiceClient.PostAsync <ProductUpgradeRequest, HttpResponseMessage>(
                new Uri(
                    $"/{PartnerService.Instance.ApiVersion}/{PartnerService.Instance.Configuration.Apis.UpgradeProduct.Path}",
                    UriKind.Relative),
                newEntity,
                cancellationToken).ConfigureAwait(false);

            return(response.Headers.Location != null?response.Headers.Location.ToString() : string.Empty);
        }
        /// <summary>
        /// Checks the product upgrade eligibility.
        /// </summary>
        /// <param name="productUpgradesRequest">The product upgrade request.</param>
        /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
        /// <returns>The eligibility object for the customer.</returns>
        public async Task <ProductUpgradeEligibility> CheckEligibilityAsync(ProductUpgradeRequest productUpgradesRequest, CancellationToken cancellationToken = default)
        {
            productUpgradesRequest.AssertNotNull(nameof(productUpgradesRequest));

            return(await Partner.ServiceClient.PostAsync <ProductUpgradeRequest, ProductUpgradeEligibility>(
                       new Uri(
                           string.Format(
                               CultureInfo.InvariantCulture,
                               $"/{PartnerService.Instance.ApiVersion}/{PartnerService.Instance.Configuration.Apis.GetProductUpgradeEligibility.Path}",
                               Context),
                           UriKind.Relative),
                       productUpgradesRequest,
                       cancellationToken).ConfigureAwait(false));
        }