public object getSessionStateUsingCache(string name)
 {
     if (USE_SESSION_STATE_INSTEAD_OF_CACHE)
     {
         return(Session[name]);
     }
     else
     {
         bool doSignon = true;
         if (!WeveSignedOnAtLeastOnce)
         {
             doSignon = false;
         }
         if (name.Equals("HaveAuthenticatedUser")
             )
         {
             doSignon = false;
         }
         if (doSignon)
         {
             if (_cache["CurrentUser_" + SessionID] == null)   // we've timed out
             {
                 WeveSignedOnAtLeastOnce = false;
                 try {
                     Server.Transfer(PagesVisited.ToArray()[0]);
                 } catch { }
                 Server.Transfer("~/CMS/Default.aspx");
             }
         }
         return(_cache[name + "_" + SessionID]);
     }
 }
        public string lastPageThatDiffers()
        {
            string thisPage  = PagesVisited.Pop();
            string priorPage = PagesVisited.Pop();

            while (priorPage.Equals(thisPage))
            {
                priorPage = PagesVisited.Pop();
            }
            return(priorPage);
        }
 public string whatPageWouldYouGoBackTo()
 {
     try {
         PagesVisited.Pop();
         string priorPage = PagesVisited.Pop();
         if (priorPage.ToLower().IndexOf("payment") == -1)
         {
             return(priorPage);
         }
         else
         {
             return("Default.aspx");
         }
     } catch (Exception ee) {
         return("Default.aspx");
     }
 }
 public bool canGoBack()
 {
     if (PagesVisited.Count > 1)
     {
         string page1 = PagesVisited.Pop();
         string page2 = PagesVisited.Peek();
         PagesVisited.Push(page1);
         if (page2.ToLower().IndexOf("payment") == -1)
         {
             if (
                 (page2.ToLower().IndexOf("candidates_jobsearch") != -1) &&
                 (page1.ToLower().IndexOf("jobviewpage") != -1)
                 )
             {
                 return(true);
             }
         }
     }
     return(false);
 }
        private void Page_Load(object sender, EventArgs e)
        {
            if (!Sitecore.Context.PageMode.IsNormal)
            {
                WriteAlert("visit details are not available in page editor");
                pnlDetails.Visible = false;
            }
            else
            {
                // throw an exception if DMS is not installed.
                if (!Sitecore.Analytics.Configuration.AnalyticsSettings.Enabled)
                {
                    throw new ApplicationException("Launch Sitecore requires DMS to be installed.");
                }

                InitializeLabels();
                FakeIPForLocalhost();

                PageCount.Text       = Convert.ToString(Tracker.CurrentVisit.VisitPageCount);
                EngagementValue.Text = Convert.ToString(Tracker.CurrentVisit.Value);

                // Populate the Patterns
                if (SiteConfiguration.GetSiteSettingsItem() != null)
                {
                    MultilistField profiles = SiteConfiguration.GetSiteSettingsItem().Fields["Visible Profiles"];
                    rptPatternList.DataSource = profiles.GetItems();
                    rptPatternList.DataBind();
                }

                // the call to Tracker.CurrentVisit.CampaignId will either work or throw
                try
                {
                    Item campaign = Sitecore.Context.Database.GetItem(new ID(Tracker.CurrentVisit.CampaignId));
                    litCurrentCampaign.Text = campaign.Name;
                }
                catch { litCurrentCampaign.Text = GetDictionaryText("Current Campaign Empty"); }

                if (Tracker.CurrentVisit.HasGeoIpData)
                {
                    litCity.Text = Tracker.CurrentVisit.City;
                    litZip.Text  = Tracker.CurrentVisit.PostalCode;
                }
                else
                {
                    litCity.Text = GetDictionaryText("Pending Lookup");
                    litZip.Text  = GetDictionaryText("Pending Lookup");
                }

                PagesVisited.DataSource = Tracker.CurrentVisit.GetPages().Reverse();
                PagesVisited.DataBind();

                List <VisitorDataSet.PageEventsRow> Conversions = new List <VisitorDataSet.PageEventsRow>();
                foreach (VisitorDataSet.PagesRow p in Tracker.CurrentVisit.GetPages())
                {
                    foreach (VisitorDataSet.PageEventsRow a in p.PageEvents)
                    {
                        if (a.PageEventDefinition.IsGoal)
                        {
                            Conversions.Add(a);
                        }
                    }
                }

                if (Conversions.Count > 0)
                {
                    Conversions.Reverse();
                    GoalsAcheived.DataSource = Conversions;
                    GoalsAcheived.DataBind();
                    GoalsEmpty.Visible = false;
                }
            }
        }