private void CreateMultiSearchConverter(IMultiSearchRequest request) { var formatter = new MultiSearchResponseFormatter(request); var serializer = ConnectionSettings.CreateStateful(formatter); var creator = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s)); request.RequestParameters.DeserializationOverride = creator; }
/// <inheritdoc /> public IMultiSearchResponse MultiSearchTemplate(IMultiSearchTemplateRequest request) => Dispatcher.Dispatch <IMultiSearchTemplateRequest, MultiSearchTemplateRequestParameters, MultiSearchResponse>( request, (p, d) => { var converter = CreateMultiSearchTemplateDeserializer(p); var serializer = ConnectionSettings.CreateStateful(converter); var creator = new MultiSearchTemplateCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s)); request.RequestParameters.DeserializationOverride = creator; return(LowLevelDispatch.MsearchTemplateDispatch <MultiSearchResponse>(p, new SerializableData <IMultiSearchTemplateRequest>(p))); } );
/// <inheritdoc /> public Task <IMultiSearchResponse> MultiSearchTemplateAsync(IMultiSearchTemplateRequest request, CancellationToken cancellationToken = default(CancellationToken) ) => Dispatcher.DispatchAsync <IMultiSearchTemplateRequest, MultiSearchTemplateRequestParameters, MultiSearchResponse, IMultiSearchResponse>( request, cancellationToken, (p, d, c) => { var converter = CreateMultiSearchTemplateDeserializer(p); var serializer = ConnectionSettings.CreateStateful(converter); var creator = new MultiSearchTemplateCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s)); request.RequestParameters.DeserializationOverride = creator; return(LowLevelDispatch.MsearchTemplateDispatchAsync <MultiSearchResponse>(p, new SerializableData <IMultiSearchTemplateRequest>(p), c)); } );
private MultiGetResponse DeserializeMultiGetResponse(IApiCallDetails response, Stream stream, JsonConverter converter) => ConnectionSettings.CreateStateful(converter).Deserialize <MultiGetResponse>(stream);
private Func <IApiCallDetails, Stream, object> CreateMultiGetDeserializer(IMultiGetRequest request) { var formatter = new MultiGetResponseFormatter(request); return((r, s) => ConnectionSettings.CreateStateful(formatter).Deserialize <MultiGetResponse>(s)); }