public override void SetValues(SimulationObject target) { var data = _siteAndItem(); var site = data.Item1; var item = data.Item2; target.Variables.Add("Site", site.Id); if (!string.IsNullOrEmpty(site.Host)) { target.Variables.Add("Host", "https://" + site.Host.Split('|')[0]); } var lang = target.GetVariable <string>("Language"); if (!string.IsNullOrEmpty(lang) && item.Language != lang) { item = _itemInfo.GetItemInfo(item.Id.ToString(), lang); } var url = item.SiteUrls[site.Id].Url; if (url.Contains("://")) { url = new Uri(url).PathAndQuery; } var campaignId = target.GetVariable <string>("Campaign"); if (!string.IsNullOrEmpty(campaignId)) { url += (url.Contains("?") ? "&" : "?") + "sc_camp=" + campaignId; } target.Variables.Add("LandingPage", url); }
public override void SetValues(SimulationObject target) { var engine = Engine(); if (engine != null) { var domainPostfix = target.GetVariable <string>("DomainPostfix"); var localize = Randomness.Random.NextDouble() < LocalizeTld; var postfix = !string.IsNullOrEmpty(domainPostfix) && localize ? domainPostfix : ".com"; if (engine.AllowedTlds != null && !engine.AllowedTlds.Contains(postfix)) { postfix = ".com"; } var tld = target.GetVariable <string>("Tld"); var country = !string.IsNullOrEmpty(tld) && localize?tld.Substring(1) : ""; var keywords = Keywords(); target.Variables["Referrer"] = engine.Url.Replace("{tld}", postfix) .Replace("{country.}", !string.IsNullOrEmpty(country) ? country + "." : "") .Replace("{country}", country) .Replace("{keywords}", keywords != null ? HttpUtility.UrlEncode(string.Join(" ", keywords)).Replace("%20", "+") : ""); if (engine.ChannelId != null) { target.Variables["Channel"] = engine.ChannelId; } else { target.Variables["Channel"] = ""; } } }