The next generation of the Teknik Services. Written in ASP.NET.
https://www.teknik.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Web; |
|
using System.Web.Mvc; |
|
using System.Web.UI; |
|
using Teknik.Configuration; |
|
using Teknik.Utilities; |
|
using Teknik.Piwik; |
|
|
|
namespace Teknik.Filters |
|
{ |
|
public class TrackDownload : ActionFilterAttribute |
|
{ |
|
public override void OnActionExecuting(ActionExecutingContext filterContext) |
|
{ |
|
base.OnActionExecuting(filterContext); |
|
} |
|
|
|
public override void OnActionExecuted(ActionExecutedContext filterContext) |
|
{ |
|
Config config = Config.Load(); |
|
|
|
if (config.PiwikConfig.Enabled) |
|
{ |
|
HttpRequestBase request = filterContext.HttpContext.Request; |
|
// Fire and forget. Don't need to wait for it. |
|
Task.Run(() => AsyncTrackDownload(request, config, request.Url?.ToString())); |
|
} |
|
|
|
base.OnActionExecuted(filterContext); |
|
} |
|
|
|
private void AsyncTrackDownload(HttpRequestBase request, Config config, string url) |
|
{ |
|
Tracking.TrackDownload(request, config, url); |
|
} |
|
} |
|
}
|
|
|