private void GetResultsWithPagedQuery(IClusterConnection clusterConnection)
        {
            var queryDescription = new ApplicationQueryDescription();

            queryDescription.ExcludeApplicationParameters = this.ExcludeApplicationParameters;

            if (this.MaxResults.HasValue)
            {
                queryDescription.MaxResults = this.MaxResults.Value;
            }

            if (!string.IsNullOrEmpty(this.ApplicationTypeName))
            {
                queryDescription.ApplicationTypeNameFilter = this.ApplicationTypeName;
            }

            if ((this.ApplicationName != null) && (!string.IsNullOrEmpty(this.ApplicationName.OriginalString)))
            {
                queryDescription.ApplicationNameFilter = this.ApplicationName;
            }

            if (!string.IsNullOrEmpty(this.ContinuationToken))
            {
                queryDescription.ContinuationToken = this.ContinuationToken;
            }

            if (this.ApplicationDefinitionKindFilter.HasValue)
            {
                queryDescription.ApplicationDefinitionKindFilter = this.ApplicationDefinitionKindFilter.Value;
            }

            var queryResult = clusterConnection.GetApplicationPagedListAsync(
                queryDescription,
                this.GetTimeout(),
                this.GetCancellationToken()).Result;

            // Continuation token is not added as a PsObject because it breaks the pipeline scenarios
            // like Get-ServiceFabricNode | Get-ServiceFabricNodeHealth
            this.WriteObject(this.FormatOutput(queryResult));

            // If the user selects the "Verbose" option, then print the continuation token
            this.WriteVerbose("Continuation Token: " + queryResult.ContinuationToken);
        }
        private void GetAllQueryResultPages(IClusterConnection clusterConnection)
        {
            // If the results do not fit a message, the continuation token is set.
            // Keep getting data until all entries are received.
            bool   morePages = true;
            string currentContinuationToken = null;

            currentContinuationToken = this.ContinuationToken;

            var queryDescription = new ApplicationQueryDescription()
            {
                ApplicationNameFilter        = this.ApplicationName,
                ApplicationTypeNameFilter    = this.ApplicationTypeName,
                ContinuationToken            = currentContinuationToken,
                ExcludeApplicationParameters = this.ExcludeApplicationParameters
            };

            if (this.ApplicationDefinitionKindFilter.HasValue)
            {
                queryDescription.ApplicationDefinitionKindFilter = this.ApplicationDefinitionKindFilter.Value;
            }

            while (morePages)
            {
                var queryResult = clusterConnection.GetApplicationPagedListAsync(
                    queryDescription,
                    this.GetTimeout(),
                    this.GetCancellationToken()).Result;

                foreach (var item in queryResult)
                {
                    this.WriteObject(this.FormatOutput(item));
                }

                morePages = Helpers.ResultHasMorePages(this, queryResult.ContinuationToken, out currentContinuationToken);

                // Update continuation token
                queryDescription.ContinuationToken = currentContinuationToken;
            }
        }