public async Task <CMSProjectListModel> GetProjects(string accountId, CMSAuthCredentialModel authCredential) { CMSProjectListModel result = new CMSProjectListModel(); var response = await _httpProxyService.GetAsync($"/_apis/projects?api-version=5.0", authCredential); if (!response.IsSuccessStatusCode || response.StatusCode == System.Net.HttpStatusCode.NonAuthoritativeInformation) { if (response.StatusCode == System.Net.HttpStatusCode.NonAuthoritativeInformation) { result.Fail($"Code: {response.StatusCode}, Reason: The credentials are not correct"); return(result); } result.Fail($"Code: {response.StatusCode}, Reason: {await response.Content.ReadAsStringAsync()}"); return(result); } var projectListResult = await response.MapTo <CMSProjectListModel>(); result.Items = projectListResult.Items.Select(x => new CMSProjectListItemModel() { Id = x.Id, Name = x.Name }).ToList(); return(result); }
public async Task <CMSProjectListModel> GetProjects(string accountId, CMSAuthCredentialModel authCredential) { var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authCredential.AccessToken); client.BaseAddress = new Uri(authCredential.Url); var response = await client.GetAsync($"/{API_VERSION}/teams?role=admin"); var teamResult = await response.MapTo <CMSBitBucketTeamListModel>(); CMSProjectListModel list = new CMSProjectListModel(); var projectList = new List <CMSProjectListItemModel>(); foreach (var item in teamResult.Teams) { response = await client.GetAsync($"/{API_VERSION}/teams/{item.UserName}/projects/"); var projectResult = await response.MapTo <CMSBitBucketProjectListModel>(); foreach (var project in projectResult.Projects) { projectList.Add(new CMSProjectListItemModel { Id = project.Key, DisplayName = $@"{item.DisplayName}\{project.Name}", Name = project.Name }); } } list.Items = projectList.ToList(); return(list); }