protected override void ProcessRecord() { if (Topic != null && Topic.Length > 0) { foreach (string topicName in Topic) { string formattedTopicName = GetProjectPrefixForTopic(topicName, Project); try { ProjectsResource.TopicsResource.GetRequest getRequest = Service.Projects.Topics.Get(formattedTopicName); WriteObject(getRequest.Execute()); } catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.NotFound) { WriteResourceMissingError( exceptionMessage: $"Topic '{topicName}' does not exist in project '{Project}'.", errorId: "TopicNotFound", targetObject: topicName); } } } else { ProjectsResource.TopicsResource.ListRequest listRequest = Service.Projects.Topics.List($"projects/{Project}"); do { ListTopicsResponse response = listRequest.Execute(); if (response.Topics != null) { WriteObject(response.Topics, true); } listRequest.PageToken = response.NextPageToken; }while (!Stopping && listRequest.PageToken != null); } }
/// <summary> /// Gets all of the topics of the current project. /// </summary> public async Task <IList <Topic> > GetTopicListAsync() { ProjectsResource.TopicsResource.ListRequest request = Service.Projects.Topics.List(ProjectResourceName); return(await LoadPagedListAsync( token => { request.PageToken = token; return request.ExecuteAsync(); }, response => response.Topics, response => response.NextPageToken)); }
/// <summary> /// Gets all of the topics of the current project. /// </summary> public async Task <IList <Topic> > GetTopicListAsync() { try { ProjectsResource.TopicsResource.ListRequest request = Service.Projects.Topics.List(ProjectResourceName); return(await LoadPagedListAsync( token => { request.PageToken = token; return request.ExecuteAsync(); }, response => response.Topics, response => response.NextPageToken)); } catch (GoogleApiException e) { throw new DataSourceException(e.Message, e); } }