Ejemplo n.º 1
0
 /// <inheritdoc />
 public Task <IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest multiPercolateRequest)
 {
     return(this.DispatchAsync <IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
                multiPercolateRequest,
                (p, d) =>
     {
         var json = Serializer.SerializeMultiPercolate(d);
         return this.RawDispatch.MpercolateDispatchAsync <MultiPercolateResponse>(p, json);
     }
                ));
 }
		/// <inheritdoc />
		public Task<IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest multiPercolateRequest)
		{
			return this.DispatchAsync<IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
				multiPercolateRequest,
				(p, d) =>
				{
					var json = Serializer.SerializeMultiPercolate(d);
					return this.RawDispatch.MpercolateDispatchAsync<MultiPercolateResponse>(p, json);
				}
			);
		}
Ejemplo n.º 3
0
        public string SerializeMultiPercolate(IMultiPercolateRequest multiPercolateRequest)
        {
            multiPercolateRequest.ThrowIfNull("multiPercolateRequest");
            multiPercolateRequest.Percolations.ThrowIfEmpty("multiPercolateRequest does not define any percolations");
            var sb = new StringBuilder();

            foreach (var p in multiPercolateRequest.Percolations)
            {
                var    operation   = "percolate";
                object body        = p;
                var    op          = new PercolateHeader();
                var    countParams = p.GetRequestParameters() ?? new PercolateCountRequestParameters();
                op.percolate_index      = countParams.GetQueryStringValue <string>("percolate_index");
                op.percolate_type       = countParams.GetQueryStringValue <string>("percolate_type");
                op.routing              = countParams.GetQueryStringValue <string[]>("routing");
                op.preference           = countParams.GetQueryStringValue <string>("preference");
                op.percolate_routing    = countParams.GetQueryStringValue <string>("percolate_routing");
                op.percolate_preference = countParams.GetQueryStringValue <string>("percolate_preference");
                op.version              = countParams.GetQueryStringValue <long?>("version");


                var count     = p as IIndexTypePath <PercolateCountRequestParameters>;
                var percolate = p as IIndexTypePath <PercolateRequestParameters>;
                if (count != null)
                {
                    operation = "count";
                    if (multiPercolateRequest.Index != null && multiPercolateRequest.Index.EqualsMarker(count.Index))
                    {
                        count.Index = null;
                    }
                    op.index = count.Index;
                    op.type  = count.Type;
                    op.id    = p.Id;
                }
                else if (percolate != null)
                {
                    if (multiPercolateRequest.Index != null && multiPercolateRequest.Index.EqualsMarker(percolate.Index))
                    {
                        percolate.Index = null;
                    }
                    op.index = percolate.Index;
                    op.type  = percolate.Type;
                    op.id    = p.Id;
                }
                else
                {
                    continue;
                }

                var opJson = this.Serialize(op, SerializationFormatting.None).Utf8String();
                var action = "{{\"{0}\":{1}}}\n".F(operation, opJson);
                sb.Append(action);
                if (body == null)
                {
                    sb.Append("{}\n");
                    continue;
                }
                var jsonCommand = this.Serialize(body, SerializationFormatting.None).Utf8String();
                sb.Append(jsonCommand + "\n");
            }
            return(sb.ToString());
        }
Ejemplo n.º 4
0
 /// <inheritdoc/>
 public Task <IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest request) =>
 this.Dispatcher.DispatchAsync <IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
     request, this.LowLevelDispatch.MpercolateDispatchAsync <MultiPercolateResponse>
     );
Ejemplo n.º 5
0
 /// <inheritdoc/>
 public IMultiPercolateResponse MultiPercolate(IMultiPercolateRequest request) =>
 this.Dispatcher.Dispatch <IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse>(
     request, this.LowLevelDispatch.MpercolateDispatch <MultiPercolateResponse>
     );
		/// <inheritdoc/>
		public Task<IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest request) => 
			this.Dispatcher.DispatchAsync<IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
				request, this.LowLevelDispatch.MpercolateDispatchAsync<MultiPercolateResponse>
			);
		/// <inheritdoc/>
		public IMultiPercolateResponse MultiPercolate(IMultiPercolateRequest request) => 
			this.Dispatcher.Dispatch<IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse>(
				request, this.LowLevelDispatch.MpercolateDispatch<MultiPercolateResponse>
			);
Ejemplo n.º 8
0
 public static void Update(ElasticsearchPathInfo <MultiPercolateRequestParameters> pathInfo, IMultiPercolateRequest request)
 {
     pathInfo.HttpMethod = PathInfoHttpMethod.POST;
 }
		public Task<IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest request, CancellationToken cancellationToken = default(CancellationToken)) =>
			this.Dispatcher.DispatchAsync<IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
				request, cancellationToken, this.LowLevelDispatch.MpercolateDispatchAsync<MultiPercolateResponse>
			);
 public Task <IMultiPercolateResponse> MultiPercolateAsync(IMultiPercolateRequest request, CancellationToken cancellationToken = default(CancellationToken)) =>
 this.Dispatcher.DispatchAsync <IMultiPercolateRequest, MultiPercolateRequestParameters, MultiPercolateResponse, IMultiPercolateResponse>(
     request, cancellationToken, this.LowLevelDispatch.MpercolateDispatchAsync <MultiPercolateResponse>
     );