public Hashtable GetInformation(string visitId) { List<Hashtable> goals = new List<Hashtable>(); List<Hashtable> goals2 = new List<Hashtable>(); PageStatisticsContext pageStatistics = new PageStatisticsContext(); Sitecore.SharedSource.Analytics.Context.Visit visit = pageStatistics.GetVisit_ById(visitId); if(visit == null) { return null; } Sitecore.SharedSource.Analytics.Context.Visitor visitor = pageStatistics.GetVisitor_ById(visit.VisitorId.ToString()); if (visitor == null) { return null; } List<VisitGoal> visitGoalsMet = pageStatistics.GetGoalsMetDuringVisit(visit.VisitId).OrderByDescending(x => x.GoalMetDate).ToList(); foreach(VisitGoal visitGoal in visitGoalsMet) { Hashtable goalTable = new Hashtable(); goalTable.Add("Date", visitGoal.GoalMetDate.Value.ToString("MMMM dd, yyyy H:mm:ss")); goalTable.Add("Goal", visitGoal.GoalName); goalTable.Add("Amount", visitGoal.EngagementValue); goals.Add(goalTable); } const int startSecondColumnAt = 3; if (goals.Count > startSecondColumnAt) { double dividedValue = ((double)goals.Count) / 2; int amountPerColumn = (int)Math.Round(dividedValue, 0, MidpointRounding.AwayFromZero); goals2 = goals.GetRange(amountPerColumn, goals.Count - amountPerColumn); goals = goals.GetRange(0, amountPerColumn); } Hashtable hashtable = new Hashtable(); hashtable.Add("VisitorEngagementValue", pageStatistics.GetVisitorEngagementValue(visitor.VisitorId).ToString("N0")); hashtable.Add("VisitEngagementValue", pageStatistics.GetVisitEngagementValue(visit.VisitId).ToString("N0")); hashtable.Add("Goals", goals); hashtable.Add("Goals2", goals2); return hashtable; }
protected override void OnInit(EventArgs e) { DebugInfoEvent += new EventHandler(AnalyticsControl_DebugInfoEvent); //set database if (Sitecore.Context.ContentDatabase != null) { _database = Sitecore.Context.ContentDatabase; } else { _database = Sitecore.Context.Database; } //set context _pageStatisticsContext = new PageStatisticsContext(); }
public void SetGoal(string currentItemId, string linkedId, string goalId) { if (string.IsNullOrEmpty(currentItemId) || string.IsNullOrEmpty(linkedId) || string.IsNullOrEmpty(goalId)) { return; } Database db = Sitecore.Context.Database; if(db == null || db.Name.ToLower() == "core") { db = Sitecore.Context.ContentDatabase; } if(db == null) { return; } Item currentItem = SitecoreItemFinder.GetItem(db, currentItemId); Item linkedItem = SitecoreItemFinder.GetItem(db, linkedId); Item goalItem = SitecoreItemFinder.GetItem(db, goalId); if (currentItem.IsNull() || linkedItem.IsNull() || goalItem.IsNull()) { return; } PageStatisticsContext pageStatistics = new PageStatisticsContext(); pageStatistics.SetGoalMet(currentItem, linkedItem, goalItem, Tracker.CurrentVisit.VisitId, Tracker.CurrentVisit.VisitorId); }