示例#1
0
 protected override IEnumerable<DimensionData> GetData(IVisitAggregationContext context, NervaDemoMockData data)
 {
     yield return new DimensionData
     {
         DimensionKey = data.DeviceType ?? "(Unkown)",
         MetricsValue = CalculateCommonMetrics(context),
     };
 }
示例#2
0
 protected override IEnumerable<DimensionData> GetData(IVisitAggregationContext context, NervaDemoMockData data)
 {
     if (data.ChannelTypeId.HasValue)
     {
         yield return new DimensionData
         {
             DimensionKey = "" + data.ChannelTypeId,
             MetricsValue = CalculateCommonMetrics(context),
         };
     }
 }
示例#3
0
        public void Process(JObject visitTags, JObject requestData)
        {
            if (Tracker.Current != null && Tracker.Current.Interaction.PageCount == 1)
            {
                Tracker.Current.Contact.System.Classification = 0;

                var interaction = Tracker.Current.Interaction;
                interaction.TrafficType = (int?) visitTags["TrafficType"] ?? 20;
                interaction.Keywords = (string)visitTags["Keywords"] ?? "";

                var extraData = new NervaDemoMockData();
                var channelItemId = (Guid?) visitTags["ChannelItemId"];
                if (channelItemId.HasValue)
                {
                    var channelItem = Context.Database.GetItem(new ID(channelItemId.Value));

                    if (channelItem.TemplateID.Equals(_subchannelTemplateId))
                    {
                        extraData.SubChannelId = channelItem.ID.Guid;
                        channelItem = channelItem.Parent;
                    }

                    if (channelItem.TemplateID.Equals(_channelTemplateId))
                    {
                        extraData.ChannelId = channelItem.ID.Guid;
                        interaction.ChannelId = channelItem.ID.Guid;
                        channelItem = channelItem.Parent;
                    }

                    if (channelItem.TemplateID.Equals(_channelTypeTemplateId))
                    {
                        extraData.ChannelTypeId = channelItem.ID.Guid;
                    }
                }

                extraData.DeviceType = visitTags.Value<string>("DeviceType") ?? "Desktop";

                Tracker.Current.Interaction.CustomValues.Add("NervaDemo", JsonConvert.SerializeObject(extraData));

                foreach (var ev in interaction.CurrentPage.PageEvents)
                {
                    if (ev.IsGoal)
                    {
                        ev.CustomValues.Add("Goal Category", Guid.Empty);
                    }
                }
            }
        }
示例#4
0
 protected abstract IEnumerable<DimensionData> GetData(IVisitAggregationContext context, NervaDemoMockData data);