/// <summary>
        /// Create InputParameters namevaluecollection.
        /// </summary>
        /// <param name="flowID"></param>
        /// <returns></returns>
        private NameValueCollection GenerateInputParameters(string flowID)
        {
            NameValueCollection queryStrings = Request.QueryString;
            NameValueCollection formStrings  = Request.Form;

            InputParametersCollection ipc = ConfigurationManager.GetSection("inputParameters") as InputParametersCollection;

            NameValueCollection defaultParameters  = ipc.DefaultParameters[flowID];
            NameValueCollection overrideParameters = ipc.OverrideParameters[flowID];

            NameValueCollection inputParameters = new NameValueCollection();

            if (defaultParameters != null)
            {
                AddParametersToCollection(inputParameters, defaultParameters);
            }
            AddParametersToCollection(inputParameters, queryStrings);
            AddParametersToCollection(inputParameters, formStrings);

            if (overrideParameters != null)
            {
                AddParametersToCollection(inputParameters, overrideParameters);
            }
            return(inputParameters);
        }
        private NameValueCollection GenerateInputParameters(string flowID, string[] keys, string[] values)
        {
            if (keys == null || values == null)
            {
                throw new ArgumentNullException("keys,values");
            }

            if (keys.Length != values.Length)
            {
                throw new ArgumentOutOfRangeException("keys,values");
            }

            InputParametersCollection ipc = ConfigurationManager.GetSection("inputParameters") as InputParametersCollection;

            NameValueCollection defaultParameters  = ipc.DefaultParameters[flowID];
            NameValueCollection overrideParameters = ipc.OverrideParameters[flowID];

            NameValueCollection inputParameters = new NameValueCollection();

            if (defaultParameters != null && defaultParameters.Count > 0)
            {
                AddParametersToCollection(inputParameters, defaultParameters);
            }

            NameValueCollection nvcTemp = new NameValueCollection();

            for (int i = 0; i < keys.Length; i++)
            {
                nvcTemp.Add(keys[i], values[i]);
            }
            AddParametersToCollection(inputParameters, nvcTemp);

            if (overrideParameters != null && overrideParameters.Count > 0)
            {
                AddParametersToCollection(inputParameters, overrideParameters);
            }

            return(inputParameters);
        }