private IEnumerable <KeyValuePair <string, string> > GetQueryParamsToSign(Uri url)
        {
            if (!SignAllQueryParameters &&
                (QueryParametersToSign == null || !QueryParametersToSign.Any()))
            {
                return(Enumerable.Empty <KeyValuePair <string, string> >());
            }

            IEnumerable <KeyValuePair <string, string> > query = new FormDataCollection(url);

            if (SignAllQueryParameters == false)
            {
                query = query.Where(x => QueryParametersToSign.Contains(x.Key));
            }

            return(query.OrderBy(x => x.Value, StringComparer.OrdinalIgnoreCase));
        }