Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }