protected override void ProcessRecord()

in src/PFXImportPowershell/PFXImportPS/cmdlets/GetUserPFXCertificate.cs [114:185]


        protected override void ProcessRecord()
        {
            Hashtable modulePrivateData = this.MyInvocation.MyCommand.Module.PrivateData as Hashtable;
            if (AuthenticationResult == null)
            {
                AuthenticationResult = Authenticate.GetAuthToken(modulePrivateData);
            }
            if (!Authenticate.AuthTokenIsValid(AuthenticationResult))
            {
                this.ThrowTerminatingError(
                    new ErrorRecord(
                        new AuthenticationException("Cannot get Authentication Token"),
                        "Authentication Failure",
                        ErrorCategory.AuthenticationError,
                        AuthenticationResult));
            }

            string graphURI = Authenticate.GetGraphURI(modulePrivateData);
            string schemaVersion = Authenticate.GetSchemaVersion(modulePrivateData);

            string urlbase = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/deviceManagement/userPfxCertificates", graphURI, schemaVersion);

            if (UserThumbprintList != null && UserThumbprintList.Count > 0)
            {
                foreach (UserThumbprint userthumbprint in UserThumbprintList)
                {
                    string url = string.Format("{0}?$filter=tolower(userPrincipalName) eq '{1}' and tolower(thumbprint) eq '{2}'", urlbase, userthumbprint.User.ToLowerInvariant(), userthumbprint.Thumbprint.ToLowerInvariant());
                    HttpWebRequest request;
                    try
                    {
                        request = CreateWebRequest(url, AuthenticationResult);

                        // Returns a single record and comes back in a different format than the other requests.
                        ProcessSingleResponse(request, "User:" + userthumbprint.User + " Thumbprint:" + userthumbprint.Thumbprint);
                    }
                    catch (WebException we)
                    {
                        this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, userthumbprint));
                    }
                }
            }
            else if (UserList != null && UserList.Count > 0)
            {
                foreach (string user in UserList)
                {
                    string url = string.Format("{0}?$filter=tolower(userPrincipalName) eq '{1}'", urlbase, user.ToLowerInvariant());
                    HttpWebRequest request;
                    try
                    {
                        request = CreateWebRequest(url, AuthenticationResult);
                        ProcessCollectionResponse(request, user);
                    }
                    catch (WebException we)
                    {
                        this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, user));
                    }
                }
            }
            else
            {
                HttpWebRequest request;
                try
                {
                    request = CreateWebRequest(urlbase, AuthenticationResult);
                    ProcessCollectionResponse(request, null);
                }
                catch (WebException we)
                {
                    this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, null));
                }
            }
        }