コード例 #1
0
        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)
                {
                    if (StringSupport.EndsWith(text, ":isnull", true, CultureInfo.InvariantCulture))
                    {
                        text = text.Substring(0, text.Length - ":isnull".Length);
                        string[] array2 = new string[1];
                        array = array2;
                    }
                    if (StringSupport.EndsWith(text, ":isnull", true, CultureInfo.InvariantCulture))
                    {
                        text = text.Substring(0, text.Length - ":isnull".Length);
                        string[] array3 = new string[1];
                        array = array3;
                    }
                    if (StringSupport.StartsWith(text, "rs:", true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "rc:", true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "dsu:", true, CultureInfo.InvariantCulture) || StringSupport.StartsWith(text, "dsp:", true, CultureInfo.InvariantCulture))
                    {
                        if (!RSRequestParameters.TryToAddToCollection(text, array, null, false, otherParameters))
                        {
                            throw new InternalCatalogException("expected to add parameter to collection" + text.MarkAsUserContent());
                        }
                    }
                    else
                    {
                        if (!RSRequestParameters.TryToAddToCollection(text, array, "", 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);
        }
コード例 #2
0
        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    externalItemPath     = null;

            if (allParametersCollection != null)
            {
                RSRequestParameters.ResolveServerParameters(paramsTranslator, allParametersCollection, rsParameters, rcParameters, nameValueCollection, nameValueCollection2, reportParameters, out reverseLookup, out externalItemPath);
                if (externalItemPath != null && Localization.CatalogCultureCompare(itemPath.Value, externalItemPath.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(), externalItemPath.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", true, CultureInfo.InvariantCulture))
                        {
                            text = text.Substring(0, text.Length - ":isnull".Length);
                            string[] array2 = new string[1];
                            array = array2;
                        }
                        if (!RSRequestParameters.TryToAddToCollection(text, array, "rs:", false, rsParameters) && !RSRequestParameters.TryToAddToCollection(text, array, "rc:", false, rcParameters) && !RSRequestParameters.TryToAddToCollection(text, array, "dsu:", false, nameValueCollection) && !RSRequestParameters.TryToAddToCollection(text, array, "dsp:", false, nameValueCollection2))
                        {
                            RSRequestParameters.TryToAddToCollection(text, array, "", true, reportParameters);
                        }
                    }
                }
                dsParameters = new DatasourceCredentialsCollection(nameValueCollection, nameValueCollection2);
            }
        }