/// <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); } }
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 }); }