Esempio n. 1
0
        /// <summary>
        /// Manage Subscription Batch Usage.
        /// </summary>
        /// <param name="subscriptionBatchUsageRequest">The subscription batch usage request.</param>
        /// <returns>
        /// Subscription Usage.
        /// </returns>
        public async Task <MeteringBatchUsageResult> EmitBatchUsageEventAsync(IEnumerable <MeteringUsageRequest> subscriptionBatchUsageRequest)
        {
            this.Logger?.Info($"Inside ManageSubscriptionUsageAsync() of FulfillmentApiClient, with number of request items :: {subscriptionBatchUsageRequest.Count()} and trying to Manage Subscription Batch Usage :: {subscriptionBatchUsageRequest.FirstOrDefault()?.ResourceId}");

            var restClient = new MeteringApiRestClient <MeteringBatchUsageResult>(this.ClientConfiguration, this.Logger);

            var url = UrlHelper.GetSaaSApiUrl(this.ClientConfiguration, Guid.Empty, SaaSResourceActionEnum.SUBSCRIPTION_BATCHUSAGEEVENT);

            Dictionary <string, object> batchUsageEventRequest = new Dictionary <string, object>
            {
                { "request", subscriptionBatchUsageRequest },
            };

            var meteringBatchUsageResult = await restClient.DoRequest(url, HttpMethods.POST, batchUsageEventRequest).ConfigureAwait(false);

            return(meteringBatchUsageResult);
        }
Esempio n. 2
0
        /// <summary>
        /// Manage Subscription Usage.
        /// </summary>
        /// <param name="subscriptionUsageRequest">The subscription usage request.</param>
        /// <returns>
        /// Subscription Usage.
        /// </returns>
        public async Task <MeteringUsageResult> EmitUsageEventAsync(MeteringUsageRequest subscriptionUsageRequest)
        {
            this.Logger?.Info($"Inside ManageSubscriptionUsageAsync() of FulfillmentApiClient, trying to Manage Subscription Usage :: {subscriptionUsageRequest.ResourceId}");

            var restClient = new MeteringApiRestClient <MeteringUsageResult>(this.ClientConfiguration, this.Logger);

            var url = UrlHelper.GetSaaSApiUrl(this.ClientConfiguration, subscriptionUsageRequest.ResourceId, SaaSResourceActionEnum.SUBSCRIPTION_USAGEEVENT);

            Dictionary <string, object> usageEventRequest = new Dictionary <string, object>();

            usageEventRequest.Add("resourceId", Convert.ToString(subscriptionUsageRequest.ResourceId));
            usageEventRequest.Add("quantity", subscriptionUsageRequest.Quantity);
            usageEventRequest.Add("dimension", subscriptionUsageRequest.Dimension);
            usageEventRequest.Add("effectiveStartTime", subscriptionUsageRequest.EffectiveStartTime);
            usageEventRequest.Add("planId", subscriptionUsageRequest.PlanId);

            var meteringUsageResult = await restClient.DoRequest(url, HttpMethods.POST, usageEventRequest).ConfigureAwait(false);

            return(meteringUsageResult);
        }