private static void ParseQueryString(ExternalItemPath itemPath, IParametersTranslator paramsTranslator, NameValueCollection allParametersCollection, out NameValueCollection rsParameters, out NameValueCollection rcParameters, out NameValueCollection reportParameters, out DatasourceCredentialsCollection dsParameters, out Hashtable reverseLookup) { dsParameters = null; reverseLookup = null; rsParameters = new NameValueCollection(); rcParameters = new NameValueCollection(); reportParameters = new NameValueCollection(); NameValueCollection nameValueCollection = new NameValueCollection(); NameValueCollection nameValueCollection2 = new NameValueCollection(); ExternalItemPath itemPath2 = null; if (allParametersCollection == null) { return; } ResolveServerParameters(paramsTranslator, allParametersCollection, rsParameters, rcParameters, nameValueCollection, nameValueCollection2, reportParameters, out reverseLookup, out itemPath2); if (itemPath2 != null && Localization.CatalogCultureCompare(itemPath.Value, itemPath2.Value) != 0) { rsParameters = new NameValueCollection(); rcParameters = new NameValueCollection(); nameValueCollection = new NameValueCollection(); nameValueCollection2 = new NameValueCollection(); reportParameters = new NameValueCollection(); reverseLookup = null; if (RSTrace.CatalogTrace.TraceInfo) { string message = string.Format(CultureInfo.InvariantCulture, "Requested item path '{0}' doesn't match stored parameters path '{1}'.", itemPath.Value.MarkAsPrivate(), itemPath2.Value.MarkAsPrivate()); RSTrace.CatalogTrace.Trace(TraceLevel.Info, message); } } for (int i = 0; i < allParametersCollection.Count; i++) { string text = allParametersCollection.GetKey(i); string[] array = allParametersCollection.GetValues(i); if (array != null && text != null) { if (StringSupport.EndsWith(text, ":isnull", ignoreCase: true, CultureInfo.InvariantCulture)) { text = text.Substring(0, text.Length - ":isnull".Length); array = new string[1]; } if (!TryToAddToCollection(text, array, "rs:", allowMultiValue: false, rsParameters) && !TryToAddToCollection(text, array, "rc:", allowMultiValue: false, rcParameters) && !TryToAddToCollection(text, array, "dsu:", allowMultiValue: false, nameValueCollection) && !TryToAddToCollection(text, array, "dsp:", allowMultiValue: false, nameValueCollection2)) { TryToAddToCollection(text, array, "", allowMultiValue: true, reportParameters); } } } dsParameters = new DatasourceCredentialsCollection(nameValueCollection, nameValueCollection2); }
public static NameValueCollection ExtractReportParameters(NameValueCollection allParametersCollection, ref bool[] whichParamsAreShared, out NameValueCollection otherParameters) { NameValueCollection nameValueCollection = new NameValueCollection(); otherParameters = new NameValueCollection(); List <bool> list = new List <bool>(); for (int i = 0; i < allParametersCollection.Count; i++) { string text = allParametersCollection.GetKey(i); string[] array = allParametersCollection.GetValues(i); if (array == null || text == null) { continue; } if (StringSupport.EndsWith(text, ":isnull", ignoreCase: true, CultureInfo.InvariantCulture)) { text = text.Substring(0, text.Length - ":isnull".Length); array = new string[1]; } if (StringSupport.EndsWith(text, ":isnull", ignoreCase: true, CultureInfo.InvariantCulture)) { text = text.Substring(0, text.Length - ":isnull".Length); array = new string[1]; } if (StringSupport.StartsWith(text, "rs:", ignoreCase: true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "rc:", ignoreCase: true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "dsu:", ignoreCase: true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "dsp:", ignoreCase: true, CultureInfo.InvariantCulture)) { if (!TryToAddToCollection(text, array, null, allowMultiValue: false, otherParameters)) { throw new InternalCatalogException("expected to add parameter to collection" + text.MarkAsUserContent()); } continue; } if (!TryToAddToCollection(text, array, "", allowMultiValue: true, nameValueCollection)) { throw new InternalCatalogException("expected to add parameter to collection" + text.MarkAsUserContent()); } if (whichParamsAreShared != null && whichParamsAreShared.Length != 0) { list.Add(whichParamsAreShared[i]); } } if (whichParamsAreShared != null && whichParamsAreShared.Length != 0) { whichParamsAreShared = list.ToArray(); } return(nameValueCollection); }