Exemplo n.º 1
0
        async Task TrackSessionActivityAsync(HttpContext context)
        {
            if (context.Request.Path.StartsWithSegments("/.analytics"))
            {
                // don't track activity to activity tracking endpoints
                return;
            }

            var session          = (Guid)context.Items[SessionKey];
            var kasbahWebContext = context.GetKasbahWebContext();

            context.Request.Headers.TryGetValue("User-Agent", out var userAgent);
            context.Request.Headers.TryGetValue("Referer", out var referrer);

            var data = new
            {
                url       = $"{context.Request.Path}{context.Request.QueryString}",
                site      = kasbahWebContext.Site?.Alias,
                node      = kasbahWebContext.Node?.Id,
                version   = kasbahWebContext.Node?.PublishedVersion,
                ip        = RemoteIp(context),
                userAgent = userAgent.FirstOrDefault(),
                referrer  = referrer.FirstOrDefault()
            };

            await _trackingService.TrackSessionActivityAsync(session, "request", data);
        }
Exemplo n.º 2
0
 public async Task TrackSessionActivityAsync([FromBody] TrackSessionActivityRequest ev)
 => await _trackingService.TrackSessionActivityAsync(HttpContext.GetCurrentSessionId(), ev.Type, ev.Data);