public ISearchResponse <TResult> SearchTemplate <T, TResult>(ISearchTemplateRequest request) where T : class where TResult : class { var pathInfo = request .ToPathInfo(_connectionSettings) .DeserializationState(this.CreateSearchDeserializer <T, TResult>(request)); var status = this.RawDispatch.SearchTemplateDispatch <SearchResponse <TResult> >(pathInfo, request); return(status.Success ? status.Response : CreateInvalidInstance <SearchResponse <TResult> >(status)); }
public Task <ISearchResponse <TResult> > SearchTemplateAsync <T, TResult>(ISearchTemplateRequest request) where T : class where TResult : class { var pathInfo = request .ToPathInfo(_connectionSettings) .DeserializationState(this.CreateSearchDeserializer <T, TResult>(request)); return(this.RawDispatch.SearchTemplateDispatchAsync <SearchResponse <TResult> >(pathInfo, request) .ContinueWith <ISearchResponse <TResult> >(t => { if (t.IsFaulted) { throw t.Exception.Flatten().InnerException; } return t.Result.Success ? t.Result.Response : CreateInvalidInstance <SearchResponse <TResult> >(t.Result); })); }