/// <summary> /// Places the vote into Analytics. /// </summary> /// <param name="optionItem">The option item.</param> public static void PlaceVote(PollOptionItem optionItem) { // //cancel pipeline handler (for CurrentPage) //Tracker.CurrentPage.Cancel(); // //Submit analytics tracking for poll item SubmitPollTracking(optionItem.Poll.InnerItem, optionItem.InnerItem); // //event trigger on new poll option selected var peData = new PageEventData("Poll"); string text = string.Format("Select {0} ({2}) in poll {1}", optionItem.Title, optionItem.Poll.Name, optionItem.Index); string data = string.Concat(new object[] { optionItem.Poll.Name, "|", optionItem.Title, "|", optionItem.Index }); peData.Data = data; peData.Text = text; peData.DataKey = optionItem.Poll.Name; var row = Tracker.CurrentPage.Register(peData); row.DataCode = optionItem.Index; // //submit immediatelly SubmitAnalyticsImmediatelly(); }
/// <summary> /// Gets the votes count. /// </summary> /// <param name="option">The option item.</param> /// <returns></returns> public virtual int GetVotesCount(PollOptionItem option) { IQueryable<DMSPollData.Analytics.PageEvent> pageEvents = GetVotesList(option.Poll); Assert.IsNotNull(pageEvents, "PageEvents"); int voteCount = pageEvents.Where(pageEvent => pageEvent.DataCode == option.Index).Count(); return voteCount + MergeVisitEvents(pageEvents, option); //return 0; }
/// <summary> /// Gets the votes count. /// </summary> /// <param name="option">The option item.</param> /// <returns></returns> public virtual int GetVotesCount(PollOptionItem option) { IQueryable <DMSPollData.Analytics.PageEvent> pageEvents = GetVotesList(option.Poll); Assert.IsNotNull(pageEvents, "PageEvents"); int voteCount = pageEvents.Where(pageEvent => pageEvent.DataCode == option.Index).Count(); return(voteCount + MergeVisitEvents(pageEvents, option)); //return 0; }
private static int MergeVisitEvents(IQueryable<DMSPollData.Analytics.PageEvent> pageevents, PollOptionItem option) { var currentvisitevents = Tracker.DataContext.PageEvents.Where( x => x.PageEventDefinitionId == PollConstants.PollPageEventDefinitionID.ToGuid() && x.DataCode == option.Index); var count = 0; foreach (var currentvisitevent in currentvisitevents) { var c = pageevents.Where(x => x.PageEventId == currentvisitevent.PageEventId).Count(); count += c; } return currentvisitevents.Count() - count; }
private static int MergeVisitEvents(IQueryable <DMSPollData.Analytics.PageEvent> pageevents, PollOptionItem option) { var currentvisitevents = Tracker.DataContext.PageEvents.Where( x => x.PageEventDefinitionId == PollConstants.PollPageEventDefinitionID.ToGuid() && x.DataCode == option.Index); var count = 0; foreach (var currentvisitevent in currentvisitevents) { var c = pageevents.Where(x => x.PageEventId == currentvisitevent.PageEventId).Count(); count += c; } return(currentvisitevents.Count() - count); }