Skip to content

Commit b36a8a6

Browse files
committed
Code polishing
1 parent cd87188 commit b36a8a6

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

NorthwindCRUD/Controllers/QueryExecutor.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -97,31 +97,26 @@ public class QueryFilterCondition : IQueryFilterCondition
9797
public string IconName { get; set; }
9898
}
9999

100-
public class QueryConverter : JsonConverter
100+
public abstract class InterfaceToConcreteClassConverter<TI, TC> : JsonConverter
101101
{
102-
public override bool CanConvert(Type objectType) => objectType == typeof(IQuery);
102+
public override bool CanConvert(Type objectType) => objectType == typeof(TI);
103103

104-
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) => serializer.Deserialize<Query>(reader);
104+
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) => serializer.Deserialize<TC>(reader);
105105

106106
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) => serializer.Serialize(writer, value);
107+
107108
}
108109

109-
public class QueryFilterConverter : JsonConverter
110+
public class QueryConverter : InterfaceToConcreteClassConverter<IQuery, Query>
110111
{
111-
public override bool CanConvert(Type objectType) => objectType == typeof(IQueryFilter);
112-
113-
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) => serializer.Deserialize<QueryFilter>(reader);
114-
115-
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) => serializer.Serialize(writer, value);
116112
}
117113

118-
public class QueryFilterConditionConverter : JsonConverter
114+
public class QueryFilterConverter : InterfaceToConcreteClassConverter<IQueryFilter, QueryFilter>
119115
{
120-
public override bool CanConvert(Type objectType) => objectType == typeof(IQueryFilterCondition);
121-
122-
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) => serializer.Deserialize<QueryFilterCondition>(reader);
116+
}
123117

124-
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) => serializer.Serialize(writer, value);
118+
public class QueryFilterConditionConverter : InterfaceToConcreteClassConverter<IQueryFilterCondition, QueryFilterCondition>
119+
{
125120
}
126121

127122
/// <summary>

0 commit comments

Comments
 (0)