internal List <LcsProject> GetAllProjects() { const int numberOfProjectsRequested = 50; int numberOfProjectReturned; var allProjects = new List <LcsProject>(); var pageNumber = 0; SetRequestVerificationToken($"{LcsUrl}/V2"); do { pageNumber++; var pagingParams = new ProjectsPaging() { DynamicPaging = new DynamicPaging() { StartPosition = pageNumber * numberOfProjectsRequested - numberOfProjectsRequested, ItemsRequested = numberOfProjectsRequested } }; var pagingParamsJson = JsonConvert.SerializeObject(pagingParams, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); using (_stringContent = new StringContent(pagingParamsJson, Encoding.UTF8, "application/json")) { var result = _httpClient.PostAsync($"{LcsUrl}/RainierProject/AllProjectsList", _stringContent).Result; result.EnsureSuccessStatusCode(); var responseBody = result.Content.ReadAsStringAsync().Result; var response = JsonConvert.DeserializeObject <Response>(responseBody); if (response.Success && response.Data != null) { var projects = JsonConvert.DeserializeObject <ProjectsData>(response.Data.ToString()).Results; numberOfProjectReturned = projects.Count; allProjects.AddRange(projects); } else { numberOfProjectReturned = 0; } } }while (numberOfProjectReturned == numberOfProjectsRequested); _httpClient.DefaultRequestHeaders.Remove("__RequestVerificationToken"); return(allProjects); }
internal List <DeployablePackage> GetPagedDeployablePackageList(CloudHostedInstance instance) { const int numberOfPackagesRequested = 50; int numberOfPackagesReturned; var packageList = new List <DeployablePackage>(); var pageNumber = 0; SetRequestVerificationToken($"{LcsUrl}/V2"); do { pageNumber++; var pagingParams = new ProjectsPaging() { DynamicPaging = new DynamicPaging() { StartPosition = pageNumber * numberOfPackagesRequested - numberOfPackagesRequested, ItemsRequested = numberOfPackagesRequested } }; var pagingParamsJson = JsonConvert.SerializeObject(pagingParams, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); using (_stringContent = new StringContent(pagingParamsJson, Encoding.UTF8, "application/json")) { var result = _httpClient.PostAsync(GetPagedDeployablePackageListUrl(instance), _stringContent).Result; result.EnsureSuccessStatusCode(); var responseBody = result.Content.ReadAsStringAsync().Result; var response = JsonConvert.DeserializeObject <Response>(responseBody); if (response.Success && response.Data != null) { var packages = JsonConvert.DeserializeObject <PackagesData>(response.Data.ToString()).Results; numberOfPackagesReturned = packages.Count; packageList.AddRange(packages); } else { numberOfPackagesReturned = 0; } } }while (numberOfPackagesReturned == numberOfPackagesRequested); return(packageList); }