@@ -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