/// <summary> /// Update a subscription /// </summary> /// <param name="subscriptionId">The subscription id</param> /// <param name="planId">The plan id</param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <FulfillmentManagerOperationResult> RequestUpdateSubscriptionAsync( Guid subscriptionId, string planId, CancellationToken cancellationToken = default) { try { _logger.LogInformation( LoggingUtils.ComposeHttpClientLogMessage( _fulfillmentClient.GetType().Name, nameof(_fulfillmentClient.UpdateSubscriptionAsync), subscriptionId)); Guid requestId = Guid.NewGuid(); Guid correlationId = Guid.NewGuid(); ActivatedSubscriptionResult activatedSubscription = new ActivatedSubscriptionResult { PlanId = planId }; UpdateOrDeleteSubscriptionRequestResult response = await _fulfillmentClient.UpdateSubscriptionAsync( subscriptionId, activatedSubscription, requestId, correlationId, cancellationToken); _logger.LogInformation( LoggingUtils.ComposeSubscriptionActionMessage( "Updated", subscriptionId, activatedSubscription.PlanId, activatedSubscription.Quantity)); SubscriptionOperation operation = await _fulfillmentClient.GetSubscriptionOperationAsync( subscriptionId, response.OperationId, requestId, correlationId, cancellationToken); FulfillmentManagerOperationResult returnResult = FulfillmentManagerOperationResult.Success; returnResult.Operation = operation; return(returnResult); } catch (Exception e) { var errorMessage = $"Cannot update subscription {subscriptionId}."; throw new LunaFulfillmentException(errorMessage, e); } }
// Summary: // Creates an CustomerUserResult indicating a failed customer user // operation, with a list of errors if applicable. // Parameters: // errors: // An optional array of CustomerUserResultError which caused // the operation to fail. // Returns: // An CustomerUserResult indicating a failed customer user // operation, with a list of errors if applicable. public static FulfillmentManagerOperationResult Failed(params FulfillmentManagementError[] errors) { var result = new FulfillmentManagerOperationResult { Succeeded = false }; if (errors != null) { result.errors.AddRange(errors); } return(result); }
public FulfillmentManagerException(FulfillmentManagerOperationResult fulfillmentManagerOperationResult) { this.OperationResult = fulfillmentManagerOperationResult; }