System.Data.RiakClient.RiakBucketRepository.ListKeysFor C# (CSharp) Метод

ListKeysFor() публичный Метод

public ListKeysFor ( ListKeysRequest request ) : RiakResponse
request System.Data.RiakClient.Models.ListKeysRequest
Результат RiakResponse
        public RiakResponse<string[]> ListKeysFor(ListKeysRequest request) {
            var connection = _connectionManager.GetNextConnection();
            var writeResponse = connection.WriteWith(requestObject: request, 
                                                     method: RequestMethod.ListKeys);
            
            // Keep looping until the results are returned.
            return writeResponse.ResponseCode == RiakResponseCode.Failed
                ? RiakResponse<string[]>.WithErrors(writeResponse.Messages)
                : RiakResponse<string[]>.ReadResponse(() => {
                    var dontFinish = true;
                    var keys = new List<string>();
                    while(dontFinish)
                    {
                        var readResponse = connection.Read<ListKeysResponse>();
                        if (readResponse.ResponseCode == RiakResponseCode.Failed)
                        {
                            return RiakResponse<string[]>.WithErrors(keys.ToArray(), readResponse.Messages);
                        }
                        keys.AddRange(readResponse.Result.Keys.Select(x => x.DecodeToString()).ToArray());
                        dontFinish = readResponse.Result.Done == false;
                    }

                    return RiakResponse<string[]>.WithoutErrors(keys.ToArray());
            });
        }
    }

Usage Example

        public void ShouldListKeys()
        {
            // Arrange.
            var connectionManager = RiakConnectionManager.FromConfiguration;
            var repository = new RiakBucketRepository(connectionManager);
            var documentRepository = new RiakContentRepository(connectionManager);
            connectionManager.AddConnection("192.168.30.118", 8087);

            for (var i = 0; i < 3; i++ )
            {
                documentRepository.Persist(x =>
                {
                    x.Bucket = "test_bucket";
                    x.Key = string.Format("test_key_{0}", i);
                    x.ReturnBody = true;
                    x.Write = 1;
                    x.DW = 1;
                    x.Content = new RiakContent
                    {
                        ContentType = "text/plain".GetBytes(),
                        Value = "this is a test".GetBytes()
                    };
                });   
            }

            // Act.
            var response = repository.ListKeysFor(new ListKeysRequest {Bucket = "test_bucket".GetBytes()});

            // Assert.
            Assert.IsTrue(response.ResponseCode == RiakResponseCode.Successful);
            Console.WriteLine("response count: " + response.Result.Length);
            Assert.IsTrue(response.Result.Length > 0);
        }