@@ -57,8 +57,9 @@ public static string ToQueryString(
5757 )
5858 . Append ( definitions . Orders . Any ( ) ? $ "&{ orderKey } =" : string . Empty )
5959 . Append (
60- string . Join ( ',' , definitions . Orders
61- . Select ( ToQueryString )
60+ string . Join (
61+ ',' ,
62+ definitions . Orders . Select ( ToQueryString )
6263 )
6364 )
6465 . ToString ( ) ;
@@ -90,12 +91,9 @@ public static Definitions FromQueryString(
9091 var valParts = _filterSplitter . Split ( queryParam . Value , 2 ) ;
9192 var op = _operatorFromStringMap [ valParts [ 1 ] ] ;
9293 var filterValue = StringValueParser . Parse ( valParts [ 2 ] ) ;
94+ var decodedName = HttpUtility . UrlDecode ( valParts [ 0 ] ) . Replace ( "%2E" , "." ) ;
9395
94- filters . Add ( new FilterDefinition < object ? > (
95- valParts [ 0 ] ,
96- _operatorFromStringMap [ valParts [ 1 ] ] ,
97- filterValue
98- ) ) ;
96+ filters . Add ( new FilterDefinition < object ? > ( decodedName , op , filterValue ) ) ;
9997 }
10098 else if ( queryParam . Key == orderKey )
10199 {
@@ -104,7 +102,7 @@ public static Definitions FromQueryString(
104102 . Select ( part =>
105103 {
106104 var isReversed = part [ 0 ] == '-' ;
107- var fieldName = part . TrimStart ( '-' , '+' ) ;
105+ var fieldName = HttpUtility . UrlDecode ( part . TrimStart ( '-' , '+' ) ) . Replace ( "%2E" , "." ) ;
108106 return new OrderDefinition ( fieldName , isReversed ) ;
109107 } )
110108 ) ;
@@ -119,7 +117,7 @@ public static Definitions FromQueryString(
119117 }
120118
121119 private static string ToQueryString ( OrderDefinition def )
122- => HttpUtility . UrlEncode ( ( def . IsReversed ? "-" : string . Empty ) + def . Name ) ;
120+ => HttpUtility . UrlEncode ( ( def . IsReversed ? "-" : string . Empty ) + def . Name ) . Replace ( "." , "%2E" ) ;
123121
124122 private static string ToQueryString < T > ( FilterDefinition < T > def )
125123 {
@@ -129,6 +127,6 @@ private static string ToQueryString<T>(FilterDefinition<T> def)
129127 ? "[" + string . Join ( ',' , ( def . Value as IEnumerable ) ! . OfType < object > ( ) . Select ( x => x . ToString ( ) ? . Replace ( "," , "\\ ," ) ) ) + "]"
130128 : def . Value ? . ToString ( ) ;
131129
132- return HttpUtility . UrlEncode ( $ "{ def . Name } { _operatorToStringMap [ def . Operation ] } { valueSet } ") ;
130+ return HttpUtility . UrlEncode ( $ "{ def . Name } { _operatorToStringMap [ def . Operation ] } { valueSet } ") . Replace ( "." , "%2E" ) ;
133131 }
134132}
0 commit comments