Skip to content

Commit c981e5a

Browse files
committed
Merge pull request #313 from PicnicBasket/master
fixed broken querystring construction
2 parents bf4f212 + 501bf4b commit c981e5a

File tree

1 file changed

+29
-31
lines changed

1 file changed

+29
-31
lines changed

src/Nest/ElasticClient-Update.cs

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using Newtonsoft.Json;
34

45
namespace Nest
@@ -20,41 +21,38 @@ public IUpdateResponse Update<T, K>(Action<UpdateDescriptor<T, K>> updateSelecto
2021
var path = this.CreateUpdatePath<T, K>(updateDescriptor);
2122
return this._Update(path, data);
2223
}
23-
private string CreateUpdatePath<T, K>(UpdateDescriptor<T, K> s)
24-
where T : class
25-
where K : class
26-
{
27-
var index = s._Index ?? this.IndexNameResolver.GetIndexForType<T>();
28-
var type = s._Type != null ? s._Type.Resolve(this.Settings) : this.GetTypeNameFor<T>();
29-
var id = s._Id ?? this.IdResolver.GetIdFor(s._Object);
30-
31-
index.ThrowIfNullOrEmpty("index");
32-
type.ThrowIfNullOrEmpty("type");
33-
id.ThrowIfNullOrEmpty("id");
34-
35-
var path = this.PathResolver.CreateIndexTypeIdPath(index, type, id, "_update") + "/?";
36-
if (s._Consistency.HasValue)
37-
path += "consistency=" + Enum.GetName(typeof(Consistency), s._Consistency.Value);
38-
if (s._Replication.HasValue)
39-
path += "replication=" + Enum.GetName(typeof(Replication), s._Replication.Value);
40-
if (s._Refresh.HasValue)
41-
path += "refresh=" + s._Refresh.Value.ToString().ToLower();
42-
43-
if (s._Timeout.HasValue)
44-
path += "timeout=" + s._Timeout.ToString();
45-
if (s._Timeout.HasValue)
46-
path += "timeout=" + s._Timeout.ToString();
24+
private string CreateUpdatePath<T, K>(UpdateDescriptor<T, K> s)
25+
where T : class
26+
where K : class
27+
{
28+
var index = s._Index ?? this.IndexNameResolver.GetIndexForType<T>();
29+
var type = s._Type != null ? s._Type.Resolve(this.Settings) : this.GetTypeNameFor<T>();
30+
var id = s._Id ?? this.IdResolver.GetIdFor(s._Object);
4731

48-
if (!string.IsNullOrWhiteSpace(s._Percolate))
49-
path += "percolate=" + s._Percolate;
32+
index.ThrowIfNullOrEmpty("index");
33+
type.ThrowIfNullOrEmpty("type");
34+
id.ThrowIfNullOrEmpty("id");
5035

51-
if (!string.IsNullOrWhiteSpace(s._Parent))
52-
path += "parent=" + s._Parent;
36+
var querystringPairs = new List<string>();
5337

54-
if (!string.IsNullOrWhiteSpace(s._Routing))
55-
path += "routing=" + s._Routing;
38+
if (s._Consistency.HasValue)
39+
querystringPairs.Add("consistency=" + Enum.GetName(typeof(Consistency), s._Consistency.Value));
40+
if (s._Replication.HasValue)
41+
querystringPairs.Add("replication=" + Enum.GetName(typeof (Replication), s._Replication.Value));
42+
if (s._Refresh.HasValue)
43+
querystringPairs.Add("refresh=" + s._Refresh.Value.ToString().ToLower());
44+
if (s._Timeout.HasValue)
45+
querystringPairs.Add("timeout=" + s._Timeout);
46+
if (!string.IsNullOrWhiteSpace(s._Percolate))
47+
querystringPairs.Add("percolate=" + s._Percolate);
48+
if (!string.IsNullOrWhiteSpace(s._Parent))
49+
querystringPairs.Add("parent=" + s._Parent);
50+
if (!string.IsNullOrWhiteSpace(s._Routing))
51+
querystringPairs.Add("routing=" + s._Routing);
52+
if (s._RetriesOnConflict.HasValue)
53+
querystringPairs.Add("retries_on_conflict=" + s._RetriesOnConflict);
5654

57-
return path;
55+
return this.PathResolver.CreateIndexTypeIdPath(index, type, id, "_update") + "/?" + string.Join("&", querystringPairs);
5856
}
5957

6058

0 commit comments

Comments
 (0)