コード例 #1
0
 public void PASS_Create()
 {
     GeoHashGridAggregate agg = new GeoHashGridAggregate("name", "field", 7);
     Assert.IsNotNull(agg);
     Assert.AreEqual("name", agg.Name);
     Assert.AreEqual("field", agg.Field);
     Assert.AreEqual((int)7, agg.Precision);
 }
コード例 #2
0
        public void PASS_Serialize()
        {
            GeoHashGridAggregate agg = new GeoHashGridAggregate("name", "field", 7)
            {
                Size = 12,
                ShardSize = 13
            };

            string json = JsonConvert.SerializeObject(agg);
            Assert.IsNotNull(json);

            string expectedJson = "{\"name\":{\"geohash_grid\":{\"field\":\"field\",\"precision\":7,\"size\":12,\"shard_size\":13}}}";
            Assert.AreEqual(expectedJson, json);
        }
コード例 #3
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            Dictionary<string, object> wholeDict = serializer.Deserialize<Dictionary<string, object>>(reader);
            Dictionary<string, object> aggDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(wholeDict.First().Value.ToString());
            Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(aggDict.GetString(AggregationTypeEnum.GeoHashGrid.ToString()));

            GeoHashGridAggregate agg = new GeoHashGridAggregate(
                wholeDict.First().Key,
                fieldDict.GetString(_FIELD),
                fieldDict.GetInt32(_PRECISION, _PRECISION_DEFAULT));

            agg.Size = fieldDict.GetInt32(_SIZE, _SIZE_DEFAULT);
            agg.ShardSize = fieldDict.GetInt32(_SHARD_SIZE, agg.Size);

            agg.SubAggregations = BucketAggregationBase.DeserializeSubAggregations(aggDict);
            return agg;
        }