Skip to content

Commit b66008f

Browse files
committed
Merge pull request #705 from funnelfire/wrapped-contract
Wrapped the contract after user-adjustable settings
2 parents e27bfdf + 25b71a7 commit b66008f

23 files changed

+68
-36
lines changed

src/Nest/ExposedInternals/NestSerializer.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,16 @@ internal JsonSerializerSettings CreateSettings(JsonConverter piggyBackJsonConver
8989
var piggyBackState = new JsonConverterPiggyBackState { ActualJsonConverter = piggyBackJsonConverter };
9090
var settings = new JsonSerializerSettings()
9191
{
92-
ContractResolver = new ElasticContractResolver(this._settings) { PiggyBackState = piggyBackState },
92+
ContractResolver = new ElasticContractResolver(this._settings),
9393
DefaultValueHandling = DefaultValueHandling.Include,
9494
NullValueHandling = NullValueHandling.Ignore
9595
};
9696

9797
if (_settings.ModifyJsonSerializerSettings != null)
9898
_settings.ModifyJsonSerializerSettings(settings);
9999

100+
settings.ContractResolver = new SettingsContractResolver(settings.ContractResolver, this._settings) { PiggyBackState = piggyBackState };
101+
100102
return settings;
101103
}
102104

@@ -111,11 +113,11 @@ public string SerializeBulkDescriptor(BulkDescriptor bulkDescriptor)
111113
{
112114
var command = operation._Operation;
113115
var index = operation._Index
114-
?? inferrer.IndexName(bulkDescriptor._Index)
115-
?? inferrer.IndexName(operation._ClrType);
116+
?? inferrer.IndexName(bulkDescriptor._Index)
117+
?? inferrer.IndexName(operation._ClrType);
116118
var typeName = operation._Type
117-
?? inferrer.TypeName(bulkDescriptor._Type)
118-
?? inferrer.TypeName(operation._ClrType);
119+
?? inferrer.TypeName(bulkDescriptor._Type)
120+
?? inferrer.TypeName(operation._ClrType);
119121

120122
var id = operation.GetIdForObject(inferrer);
121123
operation._Index = index;

src/Nest/Nest.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@
822822
<Compile Include="Enums\NamingConvention.cs" />
823823
<Compile Include="Properties\AssemblyInfo.cs" />
824824
<Compile Include="Resolvers\PropertyNameResolver.cs" />
825+
<Compile Include="Resolvers\SettingsContractResolver.cs" />
825826
<Compile Include="Resolvers\TypeNameMarker.cs" />
826827
<Compile Include="Resolvers\TypeNameMarkerExtensions.cs" />
827828
<Compile Include="Resolvers\TypeNameResolver.cs" />
@@ -874,4 +875,4 @@
874875
<Target Name="AfterBuild">
875876
</Target>
876877
-->
877-
</Project>
878+
</Project>

src/Nest/Resolvers/Converters/ConcreteTypeConverter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public ConcreteTypeConverter(Func<dynamic, Hit<dynamic>, Type> concreteTypeSelec
7878

7979
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
8080
{
81-
var elasticContractResolver = serializer.ContractResolver as ElasticContractResolver;
81+
var elasticContractResolver = serializer.ContractResolver as SettingsContractResolver;
8282
if (elasticContractResolver != null && elasticContractResolver.PiggyBackState != null
8383
&& elasticContractResolver.PiggyBackState.ActualJsonConverter != null)
8484
{
@@ -161,7 +161,7 @@ internal static Type GetConcreteTypeUsingSelector<T>(
161161
JObject jObject, out object selection)
162162
where T: class
163163
{
164-
var elasticContractResolver = serializer.ContractResolver as ElasticContractResolver;
164+
var elasticContractResolver = serializer.ContractResolver as SettingsContractResolver;
165165
var baseType = realConcreteConverter._baseType;
166166
var selector = realConcreteConverter._concreteTypeSelector;
167167

src/Nest/Resolvers/Converters/DictionaryKeysAreNotPropertyNamesJsonConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
3030

3131
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
3232
{
33-
var contract = serializer.ContractResolver as ElasticContractResolver;
33+
var contract = serializer.ContractResolver as SettingsContractResolver;
3434

3535
IDictionary dictionary = (IDictionary) value;
3636
writer.WriteStartObject();

src/Nest/Resolvers/Converters/FieldNameFilterConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
8484
if (fieldName == null)
8585
return;
8686

87-
var contract = serializer.ContractResolver as ElasticContractResolver;
87+
var contract = serializer.ContractResolver as SettingsContractResolver;
8888
if (contract == null)
8989
return;
9090

src/Nest/Resolvers/Converters/FieldNameQueryConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
7272
if (fieldName == null)
7373
return;
7474

75-
var contract = serializer.ContractResolver as ElasticContractResolver;
75+
var contract = serializer.ContractResolver as SettingsContractResolver;
7676
if (contract == null)
7777
return;
7878

src/Nest/Resolvers/Converters/Filters/GeoBoundingFilterConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
2222
var f = value as IGeoBoundingBoxFilter;
2323
if (f == null || (f.IsConditionless && !f.IsVerbatim)) return;
2424

25-
var contract = serializer.ContractResolver as ElasticContractResolver;
25+
var contract = serializer.ContractResolver as SettingsContractResolver;
2626
if (contract == null)
2727
return;
2828

src/Nest/Resolvers/Converters/Filters/GeoDistanceFilterConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
2222
var f = value as IGeoDistanceFilter;
2323
if (f == null || (f.IsConditionless && !f.IsVerbatim)) return;
2424

25-
var contract = serializer.ContractResolver as ElasticContractResolver;
25+
var contract = serializer.ContractResolver as SettingsContractResolver;
2626
if (contract == null)
2727
return;
2828

src/Nest/Resolvers/Converters/Filters/GeoDistanceRangeFilterConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
2222
var f = value as IGeoDistanceRangeFilter;
2323
if (f == null || (f.IsConditionless && !f.IsVerbatim)) return;
2424

25-
var contract = serializer.ContractResolver as ElasticContractResolver;
25+
var contract = serializer.ContractResolver as SettingsContractResolver;
2626
if (contract == null)
2727
return;
2828

src/Nest/Resolvers/Converters/Filters/PrefixFilterConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
2222
var f = value as IPrefixFilter;
2323
if (f == null || (f.IsConditionless && !f.IsVerbatim)) return;
2424

25-
var contract = serializer.ContractResolver as ElasticContractResolver;
25+
var contract = serializer.ContractResolver as SettingsContractResolver;
2626
if (contract == null)
2727
return;
2828

0 commit comments

Comments
 (0)