@@ -103,93 +103,135 @@ public Task<ISearchResponse<TResult>> SearchTemplateAsync<T, TResult>(ISearchTem
103103 } ) ;
104104 }
105105
106- private SearchResponse < TResult > FieldsSearchDeserializer < T , TResult > ( IElasticsearchResponse response , Stream stream , ISearchTemplateRequest d )
107- where T : class
108- where TResult : class
109- {
110- var converter = this . CreateCovariantSearchSelector < T , TResult > ( d ) ;
111- var dict = response . Success
112- ? Serializer . DeserializeInternal < SearchResponse < TResult > > ( stream , converter )
113- : null ;
114- return dict ;
115- }
116-
117- private Func < IElasticsearchResponse , Stream , SearchResponse < TResult > > CreateSearchDeserializer < T , TResult > ( ISearchTemplateRequest request )
118- where T : class
119- where TResult : class
120- {
121-
122- Func < IElasticsearchResponse , Stream , SearchResponse < TResult > > responseCreator =
123- ( r , s ) => this . FieldsSearchDeserializer < T , TResult > ( r , s , request ) ;
124- return responseCreator ;
125- }
126-
127- private JsonConverter CreateCovariantSearchSelector < T , TResult > ( ISearchTemplateRequest originalSearchDescriptor )
128- where T : class
129- where TResult : class
130- {
131- SearchTemplatePathInfo . CloseOverAutomagicCovariantResultSelector ( this . Infer , originalSearchDescriptor ) ;
132- return originalSearchDescriptor . TypeSelector == null ? null : new ConcreteTypeConverter < TResult > ( originalSearchDescriptor . TypeSelector ) ;
133- }
134-
135106 public IGetSearchTemplateResponse GetSearchTemplate ( Func < GetSearchTemplateDescriptor , GetSearchTemplateDescriptor > selector )
136107 {
137- throw new NotImplementedException ( ) ;
108+ selector = selector ?? ( s => s ) ;
109+ return this . Dispatch < GetSearchTemplateDescriptor , GetTemplateRequestParameters , GetSearchTemplateResponse > (
110+ selector ,
111+ ( p , d ) => this . RawDispatch . GetTemplateDispatch < GetSearchTemplateResponse > ( p , d )
112+ ) ;
138113 }
139114
140115 public IGetSearchTemplateResponse GetSearchTemplate ( IGetSearchTemplateRequest request )
141116 {
142- throw new NotImplementedException ( ) ;
117+ return this . Dispatch < IGetSearchTemplateRequest , GetTemplateRequestParameters , GetSearchTemplateResponse > (
118+ request ,
119+ ( p , d ) => this . RawDispatch . GetTemplateDispatch < GetSearchTemplateResponse > ( p , d )
120+ ) ;
143121 }
144122
145123 public Task < IGetSearchTemplateResponse > GetSearchTemplateAsync ( Func < GetSearchTemplateDescriptor , GetSearchTemplateDescriptor > selector )
146124 {
147- throw new NotImplementedException ( ) ;
125+ selector = selector ?? ( s => s ) ;
126+ return this . DispatchAsync < GetSearchTemplateDescriptor , GetTemplateRequestParameters , GetSearchTemplateResponse , IGetSearchTemplateResponse > (
127+ selector ,
128+ ( p , d ) => this . RawDispatch . GetTemplateDispatchAsync < GetSearchTemplateResponse > ( p , d )
129+ ) ;
148130 }
149131
150132 public Task < IGetSearchTemplateResponse > GetSearchTemplateAsync ( IGetSearchTemplateRequest request )
151133 {
152- throw new NotImplementedException ( ) ;
134+ return this . DispatchAsync < IGetSearchTemplateRequest , GetTemplateRequestParameters , GetSearchTemplateResponse , IGetSearchTemplateResponse > (
135+ request ,
136+ ( p , d ) => this . RawDispatch . GetTemplateDispatchAsync < GetSearchTemplateResponse > ( p , d )
137+ ) ;
153138 }
154139
155140 public IPutSearchTemplateResponse PutSearchTemplate ( Func < PutSearchTemplateDescriptor , PutSearchTemplateDescriptor > selector )
156141 {
157- throw new NotImplementedException ( ) ;
142+ selector = selector ?? ( s => s ) ;
143+ return this . Dispatch < PutSearchTemplateDescriptor , PutTemplateRequestParameters , PutSearchTemplateResponse > (
144+ selector ,
145+ ( p , d ) => this . RawDispatch . PutTemplateDispatch < PutSearchTemplateResponse > ( p , d )
146+ ) ;
158147 }
159148
160149 public IPutSearchTemplateResponse PutSearchTemplate ( IPutSearchTemplateRequest request )
161150 {
162- throw new NotImplementedException ( ) ;
151+ return this . Dispatch < IPutSearchTemplateRequest , PutTemplateRequestParameters , PutSearchTemplateResponse > (
152+ request ,
153+ ( p , d ) => this . RawDispatch . PutTemplateDispatch < PutSearchTemplateResponse > ( p , d )
154+ ) ;
163155 }
164156
165157 public Task < IPutSearchTemplateResponse > PutSearchTemplateAsync ( Func < PutSearchTemplateDescriptor , PutSearchTemplateDescriptor > selector )
166158 {
167- throw new NotImplementedException ( ) ;
159+ selector = selector ?? ( s => s ) ;
160+ return this . DispatchAsync < PutSearchTemplateDescriptor , PutTemplateRequestParameters , PutSearchTemplateResponse , IPutSearchTemplateResponse > (
161+ selector ,
162+ ( p , d ) => this . RawDispatch . PutTemplateDispatchAsync < PutSearchTemplateResponse > ( p , d )
163+ ) ;
168164 }
169165
170166 public Task < IPutSearchTemplateResponse > PutSearchTemplateAsync ( IPutSearchTemplateRequest request )
171167 {
172- throw new NotImplementedException ( ) ;
168+ return this . DispatchAsync < IPutSearchTemplateRequest , PutTemplateRequestParameters , PutSearchTemplateResponse , IPutSearchTemplateResponse > (
169+ request ,
170+ ( p , d ) => this . RawDispatch . PutTemplateDispatchAsync < PutSearchTemplateResponse > ( p , d )
171+ ) ;
173172 }
174173
175174 public IDeleteSearchTemplateResponse DeleteSearchTemplate ( Func < DeleteSearchTemplateDescriptor , DeleteSearchTemplateDescriptor > selector )
176175 {
177- throw new NotImplementedException ( ) ;
176+ selector = selector ?? ( s => s ) ;
177+ return this . Dispatch < DeleteSearchTemplateDescriptor , DeleteTemplateRequestParameters , DeleteSearchTemplateResponse > (
178+ selector ,
179+ ( p , d ) => this . RawDispatch . DeleteTemplateDispatch < DeleteSearchTemplateResponse > ( p )
180+ ) ;
178181 }
179182
180183 public IDeleteSearchTemplateResponse DeleteSearchTemplate ( IDeleteSearchTemplateRequest request )
181184 {
182- throw new NotImplementedException ( ) ;
185+ return this . Dispatch < IDeleteSearchTemplateRequest , DeleteTemplateRequestParameters , DeleteSearchTemplateResponse > (
186+ request ,
187+ ( p , d ) => this . RawDispatch . DeleteTemplateDispatch < DeleteSearchTemplateResponse > ( p )
188+ ) ;
183189 }
184190
185191 public Task < IDeleteSearchTemplateResponse > DeleteSearchTemplateAsync ( Func < DeleteSearchTemplateDescriptor , DeleteSearchTemplateDescriptor > selector )
186192 {
187- throw new NotImplementedException ( ) ;
193+ selector = selector ?? ( s => s ) ;
194+ return this . DispatchAsync < DeleteSearchTemplateDescriptor , DeleteTemplateRequestParameters , DeleteSearchTemplateResponse , IDeleteSearchTemplateResponse > (
195+ selector ,
196+ ( p , d ) => this . RawDispatch . DeleteTemplateDispatchAsync < DeleteSearchTemplateResponse > ( p )
197+ ) ;
188198 }
189199
190200 public Task < IDeleteSearchTemplateResponse > DeleteSearchTemplateAsync ( IDeleteSearchTemplateRequest request )
191201 {
192- throw new NotImplementedException ( ) ;
202+ return this . DispatchAsync < IDeleteSearchTemplateRequest , DeleteTemplateRequestParameters , DeleteSearchTemplateResponse , IDeleteSearchTemplateResponse > (
203+ request ,
204+ ( p , d ) => this . RawDispatch . DeleteTemplateDispatchAsync < DeleteSearchTemplateResponse > ( p )
205+ ) ;
206+ }
207+
208+ private SearchResponse < TResult > FieldsSearchDeserializer < T , TResult > ( IElasticsearchResponse response , Stream stream , ISearchTemplateRequest d )
209+ where T : class
210+ where TResult : class
211+ {
212+ var converter = this . CreateCovariantSearchSelector < T , TResult > ( d ) ;
213+ var dict = response . Success
214+ ? Serializer . DeserializeInternal < SearchResponse < TResult > > ( stream , converter )
215+ : null ;
216+ return dict ;
217+ }
218+
219+ private Func < IElasticsearchResponse , Stream , SearchResponse < TResult > > CreateSearchDeserializer < T , TResult > ( ISearchTemplateRequest request )
220+ where T : class
221+ where TResult : class
222+ {
223+
224+ Func < IElasticsearchResponse , Stream , SearchResponse < TResult > > responseCreator =
225+ ( r , s ) => this . FieldsSearchDeserializer < T , TResult > ( r , s , request ) ;
226+ return responseCreator ;
227+ }
228+
229+ private JsonConverter CreateCovariantSearchSelector < T , TResult > ( ISearchTemplateRequest originalSearchDescriptor )
230+ where T : class
231+ where TResult : class
232+ {
233+ SearchTemplatePathInfo . CloseOverAutomagicCovariantResultSelector ( this . Infer , originalSearchDescriptor ) ;
234+ return originalSearchDescriptor . TypeSelector == null ? null : new ConcreteTypeConverter < TResult > ( originalSearchDescriptor . TypeSelector ) ;
193235 }
194236 }
195237}
0 commit comments