public ISearchResponse <TResult> Search <T, TResult>(ISearchRequest request) where T : class where TResult : class { var pathInfo = request .ToPathInfo(_connectionSettings) .DeserializationState(this.CreateSearchDeserializer <T, TResult>(request)); var status = this.RawDispatch.SearchDispatch <SearchResponse <TResult> >(pathInfo, request); return(status.Success ? status.Response : CreateInvalidInstance <SearchResponse <TResult> >(status)); }
public Task <ISearchResponse <TResult> > SearchAsync <T, TResult>(ISearchRequest request) where T : class where TResult : class { var pathInfo = request .ToPathInfo(_connectionSettings) .DeserializationState(this.CreateSearchDeserializer <T, TResult>(request)); return(this.RawDispatch.SearchDispatchAsync <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); })); }