Пример #1
0
        /// <summary>
        /// Resolves a subscription with Azure Marketplace given a token
        /// </summary>
        /// <param name="authCode">The authentication code for the subscription</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <MarketplaceSubscription> ResolveSubscriptionAsync(
            string authCode,
            CancellationToken cancellationToken = default)
        {
            try
            {
                _logger.LogInformation(
                    LoggingUtils.ComposeHttpClientLogMessage(
                        _fulfillmentClient.GetType().Name,
                        nameof(_fulfillmentClient.ResolveSubscriptionAsync)));

                Guid requestId     = Guid.NewGuid();
                Guid correlationId = Guid.NewGuid();
                ResolvedSubscriptionResult subscription = await _fulfillmentClient.ResolveSubscriptionAsync(
                    authCode,
                    requestId,
                    correlationId,
                    cancellationToken);

                _logger.LogInformation(
                    LoggingUtils.ComposeSubscriptionActionMessage(
                        "Resolved",
                        subscription.SubscriptionId,
                        subscription.PlanId,
                        subscription.Quantity.ToString()));

                return(MarketplaceSubscription.From(subscription, StatusEnum.Provisioning));
            }
            catch (Exception e)
            {
                var errorMessage = "The token is invalid.";
                throw new LunaFulfillmentException(errorMessage, e);
            }
        }
Пример #2
0
 internal static MarketplaceSubscription From(ResolvedSubscriptionResult subscription, StatusEnum newState)
 {
     return(new MarketplaceSubscription
     {
         SubscriptionId = subscription.SubscriptionId,
         OfferId = subscription.OfferId,
         PlanId = subscription.PlanId,
         Quantity = subscription.Quantity,
         SubscriptionName = subscription.SubscriptionName,
         State = newState
     });
 }