public override ACCredentialHolderSearchResults SearchCredentialHolders(string searchString, int searchLimit)
        {
            var partialResult = false;
            var searchResult  = new List <ACCredentialHolderSearchResult>();

            try
            {
                var credentialHolders = _client.SearchCredentialHolders(searchString);

                foreach (var ch in credentialHolders)
                {
                    searchResult.Add(new ACCredentialHolderSearchResult(ch.CredentialHolderId.ToString(), ch.CredentialHolderName, ch.Roles));
                }

                // Demo Access Control system does not support search limit, so we truncate the result
                if (searchResult.Count > searchLimit)
                {
                    searchResult.RemoveRange(searchLimit, searchResult.Count - searchLimit);
                    partialResult = true;
                }
            }
            catch (DemoApplicationClientException ex)
            {
                ACUtil.Log(true, "DemoACPlugin.CredentialHolderManager", "Error searching credential holders: " + ex.Message);
            }
            return(new ACCredentialHolderSearchResults(searchResult, partialResult));
        }