private string GetAttributionUrl()
{
var queryList = new List<string>(AttributionPackage.Parameters.Count);
foreach (var entry in AttributionPackage.Parameters)
{
if (entry.Key == null) { continue; }
var keyEscaped = Uri.EscapeDataString(entry.Key);
if (entry.Value == null) { continue; }
var valueEscaped = Uri.EscapeDataString(entry.Value);
var queryParameter = string.Format("{0}={1}", keyEscaped, valueEscaped);
queryList.Add(queryParameter);
}
var sNow = Uri.EscapeDataString(Util.DateFormat(DateTime.Now));
var sentAtParameter = "sent_at=" + sNow;
queryList.Add(sentAtParameter);
var query = string.Join("&", queryList);
var uriBuilder = new UriBuilder(Util.BaseUrl);
uriBuilder.Path = AttributionPackage.Path;
uriBuilder.Query = query;
return uriBuilder.Uri.ToString();
}