@@ -154,14 +154,7 @@ private static string GetSitecoreMediaUriWithPreservation(string urlStr, object?
154154
155155 // Parse existing query parameters and build merged parameters dictionary
156156 Dictionary < string , object ? > mergedParams = new Dictionary < string , object ? > ( StringComparer . OrdinalIgnoreCase ) ;
157- if ( url . Contains ( '?' ) )
158- {
159- string [ ] parts = url . Split ( '?' , 2 ) ;
160- url = parts [ 0 ] ;
161- string queryString = parts [ 1 ] ;
162-
163- ParseUrlParams ( queryString , mergedParams ) ;
164- }
157+ url = ParseUrlParams ( url , mergedParams ) ;
165158
166159 // Add new parameters (these will override existing ones)
167160 AddParametersToResult ( mergedParams , parameters , skipNullValues : true ) ;
@@ -181,21 +174,33 @@ private static string GetSitecoreMediaUriWithPreservation(string urlStr, object?
181174 /// <summary>
182175 /// Parses URL query string parameters and adds them to the provided dictionary.
183176 /// </summary>
184- /// <param name="queryString ">The query string to parse .</param>
177+ /// <param name="url ">The full URL with potential query parameters .</param>
185178 /// <param name="parameters">The dictionary to add parsed parameters to.</param>
186- private static void ParseUrlParams ( string queryString , Dictionary < string , object ? > parameters )
179+ /// <returns>The URL without query parameters.</returns>
180+ private static string ParseUrlParams ( string url , Dictionary < string , object ? > parameters )
187181 {
188- string [ ] paramPairs = queryString . Split ( '&' ) ;
189- foreach ( string paramPair in paramPairs )
182+ if ( url . Contains ( '?' ) )
190183 {
191- string [ ] keyValue = paramPair . Split ( '=' , 2 ) ;
192- if ( keyValue . Length == 2 )
184+ string [ ] parts = url . Split ( '?' , 2 ) ;
185+ string cleanUrl = parts [ 0 ] ;
186+ string queryString = parts [ 1 ] ;
187+
188+ string [ ] paramPairs = queryString . Split ( '&' ) ;
189+ foreach ( string paramPair in paramPairs )
193190 {
194- string key = HttpUtility . UrlDecode ( keyValue [ 0 ] ) ;
195- string value = HttpUtility . UrlDecode ( keyValue [ 1 ] ) ;
196- parameters [ key ] = value ;
191+ string [ ] keyValue = paramPair . Split ( '=' , 2 ) ;
192+ if ( keyValue . Length == 2 )
193+ {
194+ string key = HttpUtility . UrlDecode ( keyValue [ 0 ] ) ;
195+ string value = HttpUtility . UrlDecode ( keyValue [ 1 ] ) ;
196+ parameters [ key ] = value ;
197+ }
197198 }
199+
200+ return cleanUrl ;
198201 }
202+
203+ return url ;
199204 }
200205
201206 /// <summary>
0 commit comments