File tree 3 files changed +26
-17
lines changed
3 files changed +26
-17
lines changed Original file line number Diff line number Diff line change @@ -53,7 +53,7 @@ public DisableQueryStringAttribute(string parameterNames)
53
53
54
54
public bool ContainsParameter ( JsonApiQueryStringParameters parameter )
55
55
{
56
- string name = parameter . ToString ( ) ;
56
+ string name = parameter . ToString ( ) ; // TODO: avoid allocation
57
57
return ParameterNames . Contains ( name ) ;
58
58
}
59
59
}
Original file line number Diff line number Diff line change @@ -59,30 +59,32 @@ public virtual bool CanRead(string parameterName)
59
59
/// <inheritdoc />
60
60
public virtual void Read ( string parameterName , StringValues parameterValue )
61
61
{
62
- foreach ( string value in parameterValue . SelectMany ( ExtractParameterValue ) )
62
+ foreach ( string ? value in parameterValue )
63
63
{
64
- ReadSingleValue ( parameterName , value ) ;
65
- }
66
- }
64
+ if ( value == null )
65
+ {
66
+ continue ;
67
+ }
67
68
68
- private IEnumerable < string > ExtractParameterValue ( string ? parameterValue )
69
- {
70
- if ( parameterValue != null )
71
- {
72
- if ( _options . EnableLegacyFilterNotation )
69
+ if ( ! _options . EnableLegacyFilterNotation )
73
70
{
74
- foreach ( string condition in LegacyConverter . ExtractConditions ( parameterValue ) )
75
- {
76
- yield return condition ;
77
- }
71
+ ReadSingleValue ( parameterName , value ) ;
78
72
}
79
73
else
80
74
{
81
- yield return parameterValue ;
75
+ ReadLegacyValues ( parameterName , value ) ;
82
76
}
83
77
}
84
78
}
85
79
80
+ private void ReadLegacyValues ( string parameterName , string parameterValue )
81
+ {
82
+ foreach ( string condition in LegacyConverter . ExtractConditions ( parameterValue ) )
83
+ {
84
+ ReadSingleValue ( parameterName , condition ) ;
85
+ }
86
+ }
87
+
86
88
private void ReadSingleValue ( string parameterName , string parameterValue )
87
89
{
88
90
bool parameterNameIsValid = false ;
Original file line number Diff line number Diff line change @@ -42,7 +42,10 @@ public void ReadAll(DisableQueryStringAttribute? disableQueryStringAttribute)
42
42
43
43
if ( reader != null )
44
44
{
45
- _logger . LogDebug ( $ "Query string parameter '{ parameterName } ' with value '{ parameterValue } ' was accepted by { reader . GetType ( ) . Name } .") ;
45
+ if ( _logger . IsEnabled ( LogLevel . Debug ) )
46
+ {
47
+ _logger . LogDebug ( $ "Query string parameter '{ parameterName } ' with value '{ parameterValue } ' was accepted by { reader . GetType ( ) . Name } .") ;
48
+ }
46
49
47
50
if ( ! reader . AllowEmptyValue && string . IsNullOrEmpty ( parameterValue ) )
48
51
{
@@ -58,7 +61,11 @@ public void ReadAll(DisableQueryStringAttribute? disableQueryStringAttribute)
58
61
}
59
62
60
63
reader . Read ( parameterName , parameterValue ) ;
61
- _logger . LogDebug ( $ "Query string parameter '{ parameterName } ' was successfully read.") ;
64
+
65
+ if ( _logger . IsEnabled ( LogLevel . Debug ) )
66
+ {
67
+ _logger . LogDebug ( $ "Query string parameter '{ parameterName } ' was successfully read.") ;
68
+ }
62
69
}
63
70
else if ( ! _options . AllowUnknownQueryStringParameters )
64
71
{
You can’t perform that action at this time.
0 commit comments