Example #1
0
        private void GetResultsWithPagedQuery(IClusterConnection clusterConnection)
        {
            var queryDescription = new PagedApplicationTypeQueryDescription();

            queryDescription.ExcludeApplicationParameters = this.ExcludeApplicationParameters;

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

            if (!string.IsNullOrEmpty(this.ApplicationTypeVersion))
            {
                queryDescription.ApplicationTypeVersionFilter = this.ApplicationTypeVersion; // defaults null
            }

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

            // 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;

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

                // Write results to PowerShell
                foreach (var item in queryResult)
                {
                    this.WriteObject(this.FormatOutput(item));
                }

                // Continuation token is not added as a PsObject because it breaks the pipeline scenarios
                // like Get-ServiceFabricApplicationType | Query_Which_Takes_AppType
                morePages = Helpers.ResultHasMorePages(this, queryResult.ContinuationToken, out currentContinuationToken);

                // Update continuation token
                queryDescription.ContinuationToken = currentContinuationToken;
            }
        }
        private ApplicationTypePagedList GetAllPages(IClusterConnection clusterConnection, PagedApplicationTypeQueryDescription queryDescription)
        {
            var allResults = new ApplicationTypePagedList();

            bool   morePages = true;
            string currentContinuationToken = queryDescription.ContinuationToken;

            while (morePages)
            {
                // Update continuation token
                queryDescription.ContinuationToken = currentContinuationToken;

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

                foreach (var item in queryResult)
                {
                    allResults.Add(item);
                }

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

            return(allResults);
        }