Example #1
0
            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);
            }
Example #2
0
        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"] = "";
                }
            }
        }