public static string CanonicalizeQueryParametersForSynthesizeSpeech(IDictionary<string, string> parameters,
bool uriEncodeParameters)
{
if (parameters == null || parameters.Count == 0)
return string.Empty;
var canonicalQueryString = new StringBuilder();
var queryParams = new SortedDictionary<string, string>(parameters, StringComparer.Ordinal);
foreach (var p in queryParams)
{
if (canonicalQueryString.Length > 0)
canonicalQueryString.Append("&");
if (string.Equals(LexiconNamesParameter, p.Key, StringComparison.Ordinal))
AppendLexiconNamesParameter(canonicalQueryString, p.Value, uriEncodeParameters);
else
{
if (uriEncodeParameters)
{
if (string.IsNullOrEmpty(p.Value))
canonicalQueryString.AppendFormat("{0}=", AWSSDKUtils.UrlEncode(p.Key, false));
else
canonicalQueryString.AppendFormat("{0}={1}", AWSSDKUtils.UrlEncode(p.Key, false), AWSSDKUtils.UrlEncode(p.Value, false));
}
else
{
if (string.IsNullOrEmpty(p.Value))
canonicalQueryString.AppendFormat("{0}=", p.Key);
else
canonicalQueryString.AppendFormat("{0}={1}", p.Key, p.Value);
}
}
}
return canonicalQueryString.ToString();
}