protected virtual string GenerateRequestBody(PostIndexRequest request) { Ensure.That(request.Fields, "request.Fields").HasItems(); var sb = new StringBuilder(); sb.Append("{"); sb.AppendFormat("{0}", GenerateIndexContent(request.Fields)); if (!string.IsNullOrWhiteSpace(request.DesignDocument)) { sb.AppendFormat(FormatStrings.JsonPropertyAppendFormat, KeyNames.DesignDocument, Serializer.ToJson(request.DesignDocument)); } if (request.Type.HasValue) { sb.AppendFormat(FormatStrings.JsonPropertyAppendFormat, KeyNames.Type, Serializer.ToJson(request.Type.Value.ToString())); } if (!string.IsNullOrWhiteSpace(request.Name)) { sb.AppendFormat(FormatStrings.JsonPropertyAppendFormat, KeyNames.Name, Serializer.ToJson(request.Name)); } sb.Append("}"); return(sb.ToString()); }
public PostIndexViewModel Handle(PostIndexRequest message) { var result = new PostIndexViewModel(); result.Active = ActivePosts.ToList(); result.FuturePostCount = FuturePosts.Count; return result; }
public virtual HttpRequest Create(PostIndexRequest request) { Ensure.That(request, "request").IsNotNull(); return(new HttpRequest(HttpMethod.Post, GenerateRelativeUrl(request)) .SetRequestTypeHeader(request.GetType()) .SetJsonContent(GenerateRequestBody(request))); }
public PostIndexViewModel Handle(PostIndexRequest message) { var result = new PostIndexViewModel(); result.Active = ActivePosts.ToList(); result.FuturePostCount = FuturePosts.Count; return(result); }
public void Can_specify_a_sort_order_for_an_index_field() { var indexRequest = new PostIndexRequest().Configure(q => q .Fields(new SortableField("diet"))); var response = SUT.PostAsync(indexRequest).Result; response.IsSuccess.Should().Be(true); response.Result.Should().Be("created"); }
public void Can_create_an_index_without_specifying_a_designdoc_and_name() { var indexRequest = new PostIndexRequest().Configure(q => q .Fields(new SortableField("diet"))); var response = SUT.PostAsync(indexRequest).Result; response.IsSuccess.Should().Be(true); response.Result.Should().Be("created"); }
public virtual async Task <IndexResponse> PostAsync(PostIndexRequest request) { Ensure.That(request, "request").IsNotNull(); var httpRequest = PostIndexHttpRequestFactory.Create(request); using (var res = await SendAsync(httpRequest).ForAwait()) { return(await IndexResponseFactory.CreateAsync(res).ForAwait()); } }
public virtual async Task <IndexResponse> PostAsync(PostIndexRequest request, CancellationToken cancellationToken = default) { Ensure.Any.IsNotNull(request, nameof(request)); var httpRequest = PostIndexHttpRequestFactory.Create(request); using (var res = await SendAsync(httpRequest, cancellationToken).ForAwait()) { return(await IndexResponseFactory.CreateAsync(res).ForAwait()); } }
public void Can_create_an_index_with_explicit_designdoc_and_name() { var indexRequest = new PostIndexRequest().Configure(q => q .DesignDocument("MyDoc") .Name("MyName") .Fields(new SortableField("diet"))); var response = SUT.PostAsync(indexRequest).Result; response.IsSuccess.Should().Be(true); response.Result.Should().Be("created"); }
private static void CreateIndex2(IMyCouchClient client) { var indexRequest = new PostIndexRequest(); indexRequest.Configure(q => q.DesignDocument("TestDoc") .Name("TestIndex2") .Fields(new SortableField("author.age"), new SortableField("yearsActive")) ); var response = client.Queries.PostAsync(indexRequest).Result; response.IsSuccess.Should().Be(true); }
public void Creating_an_index_with_same_name_as_existing_should_be_reported() { var indexRequest = new PostIndexRequest().Configure(q => q .DesignDocument("MyDoc") .Name("MyName") .Fields(new SortableField("diet"))); SUT.PostAsync(indexRequest).Wait(); var response = SUT.PostAsync(indexRequest).Result; response.IsSuccess.Should().Be(true); response.Result.Should().Be("exists"); }
public void Can_delete_a_pre_existing_index() { const string dDocName = "MyDoc"; const string indexName = "MyName"; var indexRequest = new PostIndexRequest().Configure(q => q .DesignDocument(dDocName) .Name(indexName) .Fields(new SortableField("diet"))); SUT.PostAsync(indexRequest).Wait(); var response = SUT.DeleteAsync(new DeleteIndexRequest(dDocName, indexName)).Result; response.IsSuccess.Should().Be(true); response.StatusCode.Should().Be(HttpStatusCode.OK); }
protected virtual string GenerateRelativeUrl(PostIndexRequest request) { return("/_index"); }