protected override string GetColumnValue(VisitorDataSet.VisitsRow visit)
        {
            Country country     = lookupService.getCountry(HttpContext.Current.Request.UserHostAddress);
            var     countryCode = country.getCode();

            if (string.IsNullOrEmpty(countryCode) || countryCode == "--")
            {
                countryCode = base.GetColumnValue(visit);
            }

            return(countryCode);
        }
        protected void FakeIPForLocalhost()
        {
            VisitorDataSet.VisitsRow currentVisit = Tracker.Visitor.GetCurrentVisit();
            if (currentVisit != null)
            {
                // if we are local host. our IP is 127 which will not resolve so I am using a 'fake' ip address
                if (currentVisit.Ip[0] == 127)
                {
                    currentVisit.Ip[0] = Convert.ToByte(SiteConfiguration.GetSiteSettingsItem()["IP1"]);
                    currentVisit.Ip[1] = Convert.ToByte(SiteConfiguration.GetSiteSettingsItem()["IP2"]);
                    currentVisit.Ip[2] = Convert.ToByte(SiteConfiguration.GetSiteSettingsItem()["IP3"]);
                    currentVisit.Ip[3] = Convert.ToByte(SiteConfiguration.GetSiteSettingsItem()["IP4"]);

                    // Sitecore may have already tried to resolve the 127 and failed, so this will initiate a retry
                    currentVisit.HasGeoIpData = false;

                    // Save our changes and let DMS request the GeoIP data again.
                    currentVisit.UpdateGeoIpData(new TimeSpan(0, 0, 0, 0, 100));
                    currentVisit.AcceptChanges();
                }
            }
        }
 public TrackingRuleContext(Item item, VisitorDataSet.VisitsRow visit)
 {
     this.Item  = item;
     this.Visit = visit;
 }