예제 #1
0
        /// <summary>
        /// Gets the specified subscription&#39;s configuration information.
        /// &lt;br/&gt;
        /// Transactions Per Minute (TPM) per-tenancy limit for this operation: 60.
        ///
        /// </summary>
        /// <param name="request">The request object containing the details to send. Required.</param>
        /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param>
        /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param>
        /// <returns>A response object containing details about the completed operation</returns>
        /// <example>Click <a href="https://docs.cloud.oracle.com/en-us/iaas/tools/dot-net-examples/latest/ons/GetSubscription.cs.html">here</a> to see an example of how to use GetSubscription API.</example>
        public async Task <GetSubscriptionResponse> GetSubscription(GetSubscriptionRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default)
        {
            logger.Trace("Called getSubscription");
            Uri                uri            = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/subscriptions/{subscriptionId}".Trim('/')));
            HttpMethod         method         = new HttpMethod("GET");
            HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request);

            requestMessage.Headers.Add("Accept", "application/json");
            GenericRetrier      retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration);
            HttpResponseMessage responseMessage;

            try
            {
                if (retryingClient != null)
                {
                    responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken).ConfigureAwait(false);
                }
                else
                {
                    responseMessage = await this.restClient.HttpSend(requestMessage).ConfigureAwait(false);
                }
                this.restClient.CheckHttpResponseMessage(requestMessage, responseMessage);

                return(Converter.FromHttpResponseMessage <GetSubscriptionResponse>(responseMessage));
            }
            catch (Exception e)
            {
                logger.Error($"GetSubscription failed with error: {e.Message}");
                throw;
            }
        }
 public void GetSubscription_RequestObject()
 {
     // Snippet: GetSubscription(GetSubscriptionRequest,CallSettings)
     // Create client
     SubscriberClient subscriberClient = SubscriberClient.Create();
     // Initialize request argument(s)
     GetSubscriptionRequest request = new GetSubscriptionRequest
     {
         SubscriptionAsSubscriptionName = new SubscriptionName("[PROJECT]", "[SUBSCRIPTION]"),
     };
     // Make the request
     Subscription response = subscriberClient.GetSubscription(request);
     // End snippet
 }
예제 #3
0
        private void HandleOutput(GetSubscriptionRequest request)
        {
            var waiterConfig = new WaiterConfiguration
            {
                MaxAttempts           = MaxWaitAttempts,
                GetNextDelayInSeconds = (_) => WaitIntervalSeconds
            };

            switch (ParameterSetName)
            {
            case LifecycleStateParamSet:
                response = client.Waiters.ForSubscription(request, waiterConfig, WaitForLifecycleState).Execute();
                break;

            case Default:
                response = client.GetSubscription(request).GetAwaiter().GetResult();
                break;
            }
            WriteOutput(response, response.Subscription);
        }
예제 #4
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            GetSubscriptionRequest request;

            try
            {
                request = new GetSubscriptionRequest
                {
                    SubscriptionId = SubscriptionId,
                    OpcRequestId   = OpcRequestId
                };

                HandleOutput(request);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
        /// <summary>
        /// Gets the specified subscription's configuration information.
        /// Transactions Per Minute (TPM) per-tenancy limit for this operation: 60.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetSubscriptionResponse> GetSubscription(GetSubscriptionRequest request)
        {
            var uri = new Uri($"{GetEndPoint(NotificationServices.Subscriptions, this.Region)}/{request.SubscriptionId}");

            var httpRequestHeaderParam = new HttpRequestHeaderParam()
            {
                OpcRequestId = request.OpcRequestId
            };
            var webResponse = await this.RestClientAsync.Get(uri, httpRequestHeaderParam);

            using (var stream = webResponse.GetResponseStream())
                using (var reader = new StreamReader(stream))
                {
                    var response = reader.ReadToEnd();

                    return(new GetSubscriptionResponse()
                    {
                        Subscription = this.JsonSerializer.Deserialize <SubscriptionDetails>(response),
                        OpcRequestId = webResponse.Headers.Get("opc-request-id"),
                        ETag = webResponse.Headers.Get("etag")
                    });
                }
        }
예제 #6
0
        public async Task <GetSubscriptionResponse> GetSubscription(GetSubscriptionRequest subscriptionRequest)
        {
            GetSubscriptionResponse response = new GetSubscriptionResponse();

            Subscription subscription = await _subscriptionRepository.FindBy(subscriptionRequest.SubscriptionId);

            SubscriptionView subscriptionView;

            if (subscription != null)
            {
                subscriptionView = _mapper.Map <SubscriptionView>(subscription);
                subscriptionView.MapPseudoSkus(subscription);
            }

            else
            {
                subscriptionView = null;
            }

            response.Subscription = subscriptionView;

            return(response);
        }
예제 #7
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            GetSubscriptionRequest request;

            try
            {
                request = new GetSubscriptionRequest
                {
                    SubscriptionId = SubscriptionId,
                    OspHomeRegion  = OspHomeRegion,
                    CompartmentId  = CompartmentId,
                    OpcRequestId   = OpcRequestId
                };

                response = client.GetSubscription(request).GetAwaiter().GetResult();
                WriteOutput(response, response.Subscription);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
예제 #8
0
        public IHttpActionResult GetSubscription([FromUri] GetSubscriptionRequest getSubscriptionRequest)
        {
            var responses = new Responses();

            try
            {
                if (Utility.UserId < 0)
                {
                    return(BadRequest(Utility.INVALID_USER));
                }

                if (getSubscriptionRequest == null)
                {
                    getSubscriptionRequest = new GetSubscriptionRequest();
                }

                if (getSubscriptionRequest.PageSize == null)
                {
                    getSubscriptionRequest.PageSize = Convert.ToInt32(ConfigurationManager.AppSettings["PageSize"]);
                }

                var subscription = new Subscription()
                {
                    SubscriptionId   = getSubscriptionRequest.SubscriptionId,
                    UserId           = getSubscriptionRequest.UserId,
                    PackageId        = getSubscriptionRequest.PackageId,
                    SearchText       = getSubscriptionRequest.SearchText,
                    IsActive         = getSubscriptionRequest.IsActive,
                    PageNumber       = getSubscriptionRequest.PageNumber,
                    PageSize         = Convert.ToInt32(getSubscriptionRequest.PageSize),
                    IsPagingRequired = (getSubscriptionRequest.PageNumber != null) ? true : false,
                    OrderBy          = getSubscriptionRequest.OrderBy,
                    OrderByDirection = getSubscriptionRequest.OrderByDirection
                };
                var subscriptions = iSubscription.GetSubscription(subscription);

                var subscriptionList = new List <GetSubscriptionResponse>();
                foreach (var subscriptionDetail in subscriptions)
                {
                    subscriptionList.Add(new GetSubscriptionResponse()
                    {
                        SubscriptionId     = Convert.ToInt32(subscriptionDetail.SubscriptionId),
                        UserId             = Convert.ToInt32(subscriptionDetail.UserId),
                        UserName           = subscriptionDetail.UserName,
                        PackageId          = Convert.ToInt32(subscriptionDetail.PackageId),
                        PackageName        = subscriptionDetail.PackageName,
                        StartDate          = subscriptionDetail.StartDate,
                        EndDate            = subscriptionDetail.EndDate,
                        PaymentDate        = subscriptionDetail.PaymentDate,
                        SubscriptionStatus = subscriptionDetail.SubscriptionStatus,
                        Amount             = subscriptionDetail.Amount,
                        IsExpired          = Convert.ToBoolean(subscriptionDetail.IsExpired),
                        IsPending          = subscriptionDetail.IsPending,
                        IsCanceled         = subscriptionDetail.IsCanceled,
                        CancellationDate   = subscriptionDetail.CancellationDate,
                        ActivationDate     = subscriptionDetail.ActivationDate,
                        IsActive           = Convert.ToBoolean(subscriptionDetail.IsActive),
                        CreatedBy          = subscriptionDetail.CreatedBy,
                        TotalPageCount     = subscriptionDetail.TotalPageCount,
                        TotalRecord        = subscriptionDetail.TotalRecord
                    });
                }

                responses.Status      = Utility.SUCCESS_STATUS_RESPONSE;
                responses.Description = "Subscription retrieved successfully";
                responses.Response    = subscriptionList;
            }
            catch (Exception ex)
            {
                responses.Status      = Utility.ERROR_STATUS_RESPONSE;
                responses.Description = "Error while retrieving Subscription.";

                Utility.WriteLog("GetSubscription", getSubscriptionRequest, "Error while retrieving Subscription. (SubscriptionAdminController)", ex.ToString());
            }
            return(Ok(responses));
        }
예제 #9
0
 /// <remarks/>
 public void GetSubscriptionAsync(GetSubscriptionRequest GetSubscriptionRequest, object userState) {
     if ((this.GetSubscriptionOperationCompleted == null)) {
         this.GetSubscriptionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSubscriptionOperationCompleted);
     }
     this.InvokeAsync("GetSubscription", new object[] {
                 GetSubscriptionRequest}, this.GetSubscriptionOperationCompleted, userState);
 }
예제 #10
0
 /// <remarks/>
 public void GetSubscriptionAsync(GetSubscriptionRequest GetSubscriptionRequest) {
     this.GetSubscriptionAsync(GetSubscriptionRequest, null);
 }
예제 #11
0
        /// <summary>
        /// Creates a waiter using the provided configuration.
        /// </summary>
        /// <param name="request">Request to send.</param>
        /// <param name="config">Wait Configuration</param>
        /// <param name="targetStates">Desired resource states. If multiple states are provided then the waiter will return once the resource reaches any of the provided states</param>
        /// <returns>a new Oci.common.Waiter instance</returns>
        public Waiter <GetSubscriptionRequest, GetSubscriptionResponse> ForSubscription(GetSubscriptionRequest request, WaiterConfiguration config, params Subscription.LifecycleStateEnum[] targetStates)
        {
            var agent = new WaiterAgent <GetSubscriptionRequest, GetSubscriptionResponse>(
                request,
                request => client.GetSubscription(request),
                response => targetStates.Contains(response.Subscription.LifecycleState.Value),
                targetStates.Contains(Subscription.LifecycleStateEnum.Deleted)
                );

            return(new Waiter <GetSubscriptionRequest, GetSubscriptionResponse>(config, agent));
        }
예제 #12
0
 /// <summary>
 /// Creates a waiter using default wait configuration.
 /// </summary>
 /// <param name="request">Request to send.</param>
 /// <param name="targetStates">Desired resource states. If multiple states are provided then the waiter will return once the resource reaches any of the provided states</param>
 /// <returns>a new Oci.common.Waiter instance</returns>
 public Waiter <GetSubscriptionRequest, GetSubscriptionResponse> ForSubscription(GetSubscriptionRequest request, params Subscription.LifecycleStateEnum[] targetStates)
 {
     return(this.ForSubscription(request, WaiterConfiguration.DefaultWaiterConfiguration, targetStates));
 }