@@ -37,6 +37,20 @@ public class MyTermsAggregationFix : TermsAggregator
3737 public new List < TermOrder > TermsOrder { get ; set ; }
3838 }
3939
40+ public class MyTermsAggregationsFluentFix < T > : TermsAggregationDescriptor < T >
41+ where T : class
42+ {
43+ [ JsonProperty ( "order" ) ]
44+ internal List < TermOrder > TermsOrder { get ; set ; }
45+
46+ public MyTermsAggregationsFluentFix < T > PatchedOrder ( List < TermOrder > order )
47+ {
48+ this . TermsOrder = order ;
49+ return this ;
50+ }
51+
52+ }
53+
4054
4155 [ Test ]
4256 public void FixDslThroughCustomInterfaceImplementation ( )
@@ -63,8 +77,28 @@ public void FixDslThroughCustomInterfaceImplementation()
6377 }
6478 }
6579 } ;
66- var serialized = _client . Serializer . Serialize ( search ) . Utf8String ( ) ;
67- this . JsonEquals ( search , MethodBase . GetCurrentMethod ( ) ) ;
80+ this . JsonEquals ( search , MethodBase . GetCurrentMethod ( ) , "PatchedTermsAggSort" ) ;
81+ }
82+
83+ [ Test ]
84+ public void FixDslThroughCustomInterfaceImplementationUsingFluent ( )
85+ {
86+ var order = new List < TermOrder > ( )
87+ {
88+ new TermOrder { Key = "x" , Order = SortOrder . Ascending } ,
89+ new TermOrder { Key = "y" , Order = SortOrder . Descending }
90+ } ;
91+ var search = new SearchDescriptor < ElasticsearchProject > ( )
92+ . Aggregations ( aggs=> aggs
93+ . Terms ( "my_terms_agg" , t=> new MyTermsAggregationsFluentFix < ElasticsearchProject > ( )
94+ . PatchedOrder ( order )
95+ . Field ( "x" )
96+ )
97+ )
98+
99+ ;
100+ this . JsonEquals ( search , MethodBase . GetCurrentMethod ( ) , "PatchedTermsAggSort" ) ;
68101 }
102+
69103 }
70104}
0 commit comments