コード例 #1
0
 /// <summary>
 /// Creates a new subscription.
 /// </summary>
 public async Task <Subscription> NewSubscriptionAsync(Subscription subscription)
 {
     try
     {
         string subscriptionFullName = GetSubscriptionFullName(subscription.Name);
         ProjectsResource.SubscriptionsResource.CreateRequest request =
             Service.Projects.Subscriptions.Create(subscription, subscriptionFullName);
         return(await request.ExecuteAsync());
     }
     catch (GoogleApiException e)
     {
         throw new DataSourceException(e.Message, e);
     }
 }
コード例 #2
0
        protected override void ProcessRecord()
        {
            Topic        = GetProjectPrefixForTopic(Topic, Project);
            Subscription = GetProjectPrefixForSubscription(Subscription, Project);

            Subscription subscriptionBody = new Subscription()
            {
                Name  = Subscription,
                Topic = Topic
            };

            if (AckDeadline.HasValue)
            {
                subscriptionBody.AckDeadlineSeconds = AckDeadline.Value;
            }

            if (PushEndpoint != null)
            {
                subscriptionBody.PushConfig = new PushConfig()
                {
                    PushEndpoint = PushEndpoint
                };
            }

            ProjectsResource.SubscriptionsResource.CreateRequest request =
                Service.Projects.Subscriptions.Create(subscriptionBody, Subscription);
            try
            {
                Subscription response = request.Execute();
                WriteObject(response);
            }
            catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.Conflict)
            {
                WriteResourceExistsError(
                    exceptionMessage: $"Cannot create '{Subscription}' in project '{Project}' because it already exists.",
                    errorId: "SubscriptionAlreadyExists",
                    targetObject: Subscription);
            }
            catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.NotFound)
            {
                WriteResourceMissingError(
                    exceptionMessage: $"Topic '{Topic}' does not exist in project '{Project}'.",
                    errorId: "TopicNotFound",
                    targetObject: Topic);
            }
        }