Ip Range Aggregation Usageedit

Fluent DSL exampleedit

a => a
.IpRange("ip_ranges", ip => ip
    .Field(p => p.LeadDeveloper.IpAddress)
    .Ranges(
        r => r.To("127.0.0.1"),
        r => r.From("127.0.0.1")
    )
)

Object Initializer syntax exampleedit

new IpRangeAggregation("ip_ranges")
{
    Field = Field((Project p) => p.LeadDeveloper.IpAddress),
    Ranges = new List<Nest.IpRange>
    {
        new Nest.IpRange {To = "127.0.0.1"},
        new Nest.IpRange {From = "127.0.0.1"}
    }
}

Example json output. 

{
  "ip_ranges": {
    "ip_range": {
      "field": "leadDeveloper.ipAddress",
      "ranges": [
        {
          "to": "127.0.0.1"
        },
        {
          "from": "127.0.0.1"
        }
      ]
    }
  }
}

Handling Responsesedit

response.ShouldBeValid();
var ipRanges = response.Aggregations.IpRange("ip_ranges");
ipRanges.Should().NotBeNull();
ipRanges.Buckets.Should().NotBeNull();
ipRanges.Buckets.Count.Should().BeGreaterThan(0);
foreach (var range in ipRanges.Buckets)
{
    if (TestConfiguration.Instance.InRange("6.4.0"))
        range.Key.Should().NotBeNullOrEmpty();

    range.DocCount.Should().BeGreaterThan(0);
}