Пример #1
0
        protected override void OnProcess(AggregationPipelineArgs args)
        {
            var dimension = args.GetDimension <MediaFrameworkMedia>();
            var fact      = args.GetFact <MediaFrameworkEvents>();

            VisitData visit = args.Context.Visit;

            DateTime date = args.DateTimeStrategy.Translate(visit.StartDateTime);

            foreach (PageEventData pageEvent in this.GetPageEvents(visit))
            {
                var mediaEvent = MediaEventData.Parse(pageEvent);
                if (mediaEvent == null)
                {
                    continue;
                }

                Hash128    mediaId  = dimension.AddValue(mediaEvent);
                Sites.Site site     = Sites.SiteManager.GetSite(visit.SiteName);
                var        encoder  = new Hash32Encoder();
                string     hashName = encoder.Encode(visit.SiteName);

                var key = new MediaFrameworkEventsKey
                {
                    Date    = date,
                    MediaId = mediaId,
                    PageEventDefinitionId = pageEvent.PageEventDefinitionId,
                    EventParameter        = mediaEvent.EventParameter,
                    SiteNameId            = int.Parse(hashName)
                };

                var value = new MediaFrameworkEventsValue {
                    Count = 1
                };

                fact.Emit(key, value);
            }
        }
        protected override void OnProcess(InteractionAggregationPipelineArgs args)
        {
            var dimension = args.Context.Results.GetDimension <MediaFrameworkMedia>();
            var fact      = args.Context.Results.GetFact <MediaFrameworkEvents>();

            var visit = args.Context.Interaction;

            DateTime date = args.DateTimeStrategy.Translate(visit.StartDateTime);

            foreach (var pageEvent in visit.Events)
            {
                var mediaEvent = MediaEventData.Parse(pageEvent);
                if (mediaEvent == null)
                {
                    continue;
                }

                Hash128 mediaId  = dimension.AddValue(mediaEvent);
                var     encoder  = new Hash32Encoder();
                string  hashName = encoder.Encode((visit.VenueId ?? Guid.Empty).ToString());

                var key = new MediaFrameworkEventsKey
                {
                    Date    = date,
                    MediaId = mediaId,
                    PageEventDefinitionId = pageEvent.DefinitionId,
                    EventParameter        = mediaEvent.EventParameter,
                    SiteNameId            = int.Parse(hashName)
                };

                var value = new MediaFrameworkEventsValue {
                    Count = 1
                };

                fact.Emit(key, value);
            }
        }