1
0
mirror of https://git.teknik.io/Teknikode/Teknik.git synced 2023-08-02 14:16:22 +02:00

Made tracking a synchronous process

This commit is contained in:
Uncled1023 2018-01-28 15:08:32 -08:00
parent 86559669b7
commit c695051a9b
4 changed files with 16 additions and 33 deletions

View File

@ -28,7 +28,7 @@ namespace Teknik.Filters
{ {
string userAgent = request.UserAgent; string userAgent = request.UserAgent;
string ipAddress = request.ClientIPFromRequest(true); string clientIp = request.ClientIPFromRequest(true);
string urlReferrer = request.UrlReferrer?.ToString(); string urlReferrer = request.UrlReferrer?.ToString();
@ -37,15 +37,10 @@ namespace Teknik.Filters
url = request.Url.ToString(); url = request.Url.ToString();
// Fire and forget. Don't need to wait for it. // Fire and forget. Don't need to wait for it.
Task.Run(() => AsyncTrackDownload(userAgent, ipAddress, url, urlReferrer)); Tracking.TrackDownload(userAgent, clientIp, url, urlReferrer);
} }
base.OnActionExecuted(filterContext); base.OnActionExecuted(filterContext);
} }
private static void AsyncTrackDownload(string userAgent, string clientIp, string url, string urlReferrer)
{
Tracking.TrackDownload(userAgent, clientIp, url, urlReferrer);
}
} }
} }

View File

@ -27,7 +27,7 @@ namespace Teknik.Filters
{ {
string userAgent = request.UserAgent; string userAgent = request.UserAgent;
string ipAddress = request.ClientIPFromRequest(true); string clientIp = request.ClientIPFromRequest(true);
string urlReferrer = request.UrlReferrer?.ToString(); string urlReferrer = request.UrlReferrer?.ToString();
@ -36,15 +36,10 @@ namespace Teknik.Filters
url = request.Url.ToString(); url = request.Url.ToString();
// Fire and forget. Don't need to wait for it. // Fire and forget. Don't need to wait for it.
Task.Run(() => AsyncTrackLink(userAgent, ipAddress, url, urlReferrer)); Tracking.TrackLink(userAgent, clientIp, url, urlReferrer);
} }
base.OnActionExecuted(filterContext); base.OnActionExecuted(filterContext);
} }
private static void AsyncTrackLink(string userAgent, string clientIp, string url, string urlReferrer)
{
Tracking.TrackLink(userAgent, clientIp, url, urlReferrer);
}
} }
} }

View File

@ -34,7 +34,7 @@ namespace Teknik.Filters
sub = request.Url?.AbsoluteUri.GetSubdomain(); sub = request.Url?.AbsoluteUri.GetSubdomain();
} }
string ipAddress = request.ClientIPFromRequest(true); string clientIp = request.ClientIPFromRequest(true);
string url = string.Empty; string url = string.Empty;
if (request.Url != null) if (request.Url != null)
@ -54,15 +54,10 @@ namespace Teknik.Filters
bool hasJava = request.Browser.JavaApplets; bool hasJava = request.Browser.JavaApplets;
// Fire and forget. Don't need to wait for it. // Fire and forget. Don't need to wait for it.
Task.Run(() => AsyncTrackPageView(title, sub, ipAddress, url, urlReferrer, userAgent,pixelWidth, pixelHeight, hasCookies, acceptLang, hasJava)); Tracking.TrackPageView(title, sub, clientIp, url, urlReferrer, userAgent, pixelWidth, pixelHeight, hasCookies, acceptLang, hasJava);
} }
base.OnActionExecuted(filterContext); base.OnActionExecuted(filterContext);
} }
private static void AsyncTrackPageView(string title, string sub, string clientIp, string url, string urlReferrer, string userAgent, int pixelWidth, int pixelHeight, bool hasCookies, string acceptLang, bool hasJava)
{
Tracking.TrackPageView(title, sub, clientIp, url, urlReferrer, userAgent, pixelWidth, pixelHeight, hasCookies, acceptLang, hasJava);
}
} }
} }

View File

@ -20,13 +20,6 @@ namespace Teknik.Utilities
int bytesToRead = chunkSize; int bytesToRead = chunkSize;
do do
{ {
// Flush the response
if (flush)
{
//response.OutputStream.Write(buffer, 0, 1);
response.Flush();
}
if (chunkSize > bytesRemaining) if (chunkSize > bytesRemaining)
{ {
bytesToRead = bytesRemaining; bytesToRead = bytesRemaining;
@ -37,10 +30,18 @@ namespace Teknik.Utilities
{ {
response.OutputStream.Write(buffer, 0, processedBytes); response.OutputStream.Write(buffer, 0, processedBytes);
// Flush the response
if (flush)
{
response.Flush();
}
// Clear the buffer // Clear the buffer
Array.Clear(buffer, 0, chunkSize); Array.Clear(buffer, 0, chunkSize);
// decrement the total bytes remaining to process
bytesRemaining -= processedBytes;
} }
bytesRemaining -= processedBytes;
} }
while (processedBytes > 0 && bytesRemaining > 0); while (processedBytes > 0 && bytesRemaining > 0);
} }
@ -51,10 +52,7 @@ namespace Teknik.Utilities
finally finally
{ {
// dispose of file stream // dispose of file stream
if (stream != null) stream?.Dispose();
{
stream.Dispose();
}
} }
} }
} }