public async Task <List <String> > GetAsync(string policyName) { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.UserAgent.Add( new ProductInfoHeaderValue("MyApplication", "1")); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", " "); var repo = "azure-ad-b2c/samples"; var contentsUrl = $"https://api.github.com/repos/{repo}/contents"; var resp = await httpClient.GetStringAsync(contentsUrl); List <RepoRoot> repoRoot = JsonConvert.DeserializeObject <List <RepoRoot> >(resp); RepoRoot policyObject = repoRoot.First(kvp => kvp.Name == "policies"); // fetch policy folder json contentsUrl = policyObject.Url.ToString(); resp = await httpClient.GetStringAsync(contentsUrl); List <Policies> policiesList = JsonConvert.DeserializeObject <List <Policies> >(resp); //get specific policy url //string policyName = new string("banned-password-list-no-API"); Policies policies = policiesList.First(kvp => kvp.Name == policyName); //fetch specific policy root dir contentsUrl = policies.Url.ToString(); resp = await httpClient.GetStringAsync(contentsUrl); List <PolicyRoot> policiesRootList = JsonConvert.DeserializeObject <List <PolicyRoot> >(resp); //fetch policy folder inside policy root PolicyRoot policyFolder = policiesRootList.First(kvp => kvp.Name == "policy"); contentsUrl = policyFolder.Url.ToString(); resp = await httpClient.GetStringAsync(contentsUrl); List <PolicyFiles> policiesFilesList = JsonConvert.DeserializeObject <List <PolicyFiles> >(resp); // make list of xml download links List <string> policyFileLinks = new List <string>(); foreach (PolicyFiles policy in policiesFilesList) { policyFileLinks.Add(policy.DownloadUrl.ToString()); } return(policyFileLinks); }
/// <summary> /// Update policies /// <param name="body"></param> /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param> /// </summary> public RequestInformation CreatePatchRequestInformation(PolicyRoot body, Action <PoliciesRequestBuilderPatchRequestConfiguration> requestConfiguration = default) { _ = body ?? throw new ArgumentNullException(nameof(body)); var requestInfo = new RequestInformation { HttpMethod = Method.PATCH, UrlTemplate = UrlTemplate, PathParameters = PathParameters, }; requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); if (requestConfiguration != null) { var requestConfig = new PoliciesRequestBuilderPatchRequestConfiguration(); requestConfiguration.Invoke(requestConfig); requestInfo.AddRequestOptions(requestConfig.Options); requestInfo.AddHeaders(requestConfig.Headers); } return(requestInfo); }