public async Task Reset()
        {
            var query  = new GetWhitelistEntries();
            var result = await _apiClient.QueryAsync(query);

            foreach (var item in result.Entries)
            {
                var cmd = new RemoveEntry
                {
                    Id = item.Id
                };
                await _apiClient.SendAsync(cmd);
            }
        }
        private async Task GetEmptyList()
        {
            async Task <bool> DoQuery()
            {
                var query  = new GetWhitelistEntries();
                var result = await _apiClient.QueryAsync(query);

                return(!(result.Entries?.Length > 1));
            }

            if (!await ActionExtensions.Retry(DoQuery))
            {
                throw new TestFailedException("Whitelist entry was not found.");
            }
        }
        private async Task <GetWhitelistEntriesResultItem> GetEntry(
            Func <GetWhitelistEntriesResultItem, bool> filter = null)
        {
            GetWhitelistEntriesResultItem entry = null;

            async Task <bool> DoQuery()
            {
                var query  = new GetWhitelistEntries();
                var result = await _apiClient.QueryAsync(query);

                if (filter == null)
                {
                    entry = result.Entries?.LastOrDefault();
                    return(true);
                }

                foreach (var item in result.Entries)
                {
                    if (!filter(item))
                    {
                        return(false);
                    }

                    entry = item;
                    return(true);
                }

                return(false);
            }

            if (!await ActionExtensions.Retry(DoQuery))
            {
                throw new TestFailedException("Whitelist entry was not found.");
            }

            return(entry);
        }