From 77aa0fe8bcdf079483ad4b05218e79d156c95b06 Mon Sep 17 00:00:00 2001 From: Uncled1023 Date: Thu, 16 Jun 2016 13:00:00 -0700 Subject: [PATCH] Added download action tracking to uploads/pastes/rss --- ServerMaint/Program.cs | 6 ++-- .../Areas/Home/Controllers/HomeController.cs | 4 +-- .../Paste/Controllers/PasteController.cs | 2 +- Teknik/Areas/RSS/Controllers/RSSController.cs | 10 ++++--- .../Upload/Controllers/UploadController.cs | 1 + Teknik/Areas/User/Utility/UserHelper.cs | 28 +++++++++---------- Teknik/Global.asax.cs | 2 +- 7 files changed, 28 insertions(+), 25 deletions(-) diff --git a/ServerMaint/Program.cs b/ServerMaint/Program.cs index 22c292f..b2ed361 100644 --- a/ServerMaint/Program.cs +++ b/ServerMaint/Program.cs @@ -520,15 +520,15 @@ Thank you for your continued use of Teknik! bool noData = true; // Any blog comments? - var blogCom = db.BlogComments.Include("Users").Where(c => c.UserId == user.UserId); + var blogCom = db.BlogComments.Where(c => c.UserId == user.UserId); noData &= !(blogCom != null && blogCom.Any()); // Any blog posts? - var blogPosts = db.BlogPosts.Include("Blog").Include("Blog.Users").Where(p => p.Blog.UserId == user.UserId); + var blogPosts = db.BlogPosts.Where(p => p.Blog.UserId == user.UserId); noData &= !(blogPosts != null && blogPosts.Any()); // Any podcast comments? - var podCom = db.PodcastComments.Include("Users").Where(p => p.UserId == user.UserId); + var podCom = db.PodcastComments.Where(p => p.UserId == user.UserId); noData &= !(podCom != null && podCom.Any()); // Any email? diff --git a/Teknik/Areas/Home/Controllers/HomeController.cs b/Teknik/Areas/Home/Controllers/HomeController.cs index b530664..0dff062 100644 --- a/Teknik/Areas/Home/Controllers/HomeController.cs +++ b/Teknik/Areas/Home/Controllers/HomeController.cs @@ -27,7 +27,7 @@ namespace Teknik.Areas.Home.Controllers List lastSite = new List(); if (db.BlogPosts.Count() > 0) { - var foundSite = db.BlogPosts.Include("Blog").Include("Blog.User").OrderByDescending(post => post.DatePosted).Where(p => p.Published && p.System).Take(5); + var foundSite = db.BlogPosts.OrderByDescending(post => post.DatePosted).Where(p => p.Published && p.System).Take(5); if (foundSite != null) lastSite = foundSite.ToList(); } @@ -35,7 +35,7 @@ namespace Teknik.Areas.Home.Controllers List lastPosts = new List(); if (db.BlogPosts.Count() > 0) { - var foundPosts = db.BlogPosts.Include("Blog").Include("Blog.User").OrderByDescending(post => post.DatePosted).Where(p => p.Published && !p.System).Take(5); + var foundPosts = db.BlogPosts.OrderByDescending(post => post.DatePosted).Where(p => p.Published && !p.System).Take(5); if (foundPosts != null) lastPosts = foundPosts.ToList(); } diff --git a/Teknik/Areas/Paste/Controllers/PasteController.cs b/Teknik/Areas/Paste/Controllers/PasteController.cs index efb66b7..a751cd3 100644 --- a/Teknik/Areas/Paste/Controllers/PasteController.cs +++ b/Teknik/Areas/Paste/Controllers/PasteController.cs @@ -30,7 +30,7 @@ namespace Teknik.Areas.Paste.Controllers return View(model); } - [TrackPageView] + [TrackDownload] [AllowAnonymous] public ActionResult ViewPaste(string type, string url, string password) { diff --git a/Teknik/Areas/RSS/Controllers/RSSController.cs b/Teknik/Areas/RSS/Controllers/RSSController.cs index 1ea7c2c..14c2d49 100644 --- a/Teknik/Areas/RSS/Controllers/RSSController.cs +++ b/Teknik/Areas/RSS/Controllers/RSSController.cs @@ -25,7 +25,8 @@ namespace Teknik.Areas.RSS.Controllers return new RssResult(feed); } - + + [TrackDownload] [AllowAnonymous] public ActionResult Blog(string username) { @@ -37,12 +38,12 @@ namespace Teknik.Areas.RSS.Controllers bool isSystem = string.IsNullOrEmpty(username); if (isSystem) { - blog = db.Blogs.Include("BlogPosts").Include("User").Where(b => b.BlogId == Config.BlogConfig.ServerBlogId).FirstOrDefault(); + blog = db.Blogs.Where(b => b.BlogId == Config.BlogConfig.ServerBlogId).FirstOrDefault(); blogUrl = Url.SubRouteUrl("blog", "Blog.Blog"); } else { - blog = db.Blogs.Include("BlogPosts").Include("User").Where(b => b.User.Username == username).FirstOrDefault(); + blog = db.Blogs.Where(b => b.User.Username == username).FirstOrDefault(); blogUrl = Url.SubRouteUrl("blog", "Blog.Blog", new { username = username }); } if (blog != null) @@ -83,11 +84,12 @@ namespace Teknik.Areas.RSS.Controllers return new RssResult(badFeed); } + [TrackDownload] [AllowAnonymous] public ActionResult Podcast() { List items = new List(); - List podcasts = db.Podcasts.Include("Files").Where(p => p.Published).ToList(); + List podcasts = db.Podcasts.Where(p => p.Published).ToList(); if (podcasts != null) { foreach (Podcast.Models.Podcast podcast in podcasts) diff --git a/Teknik/Areas/Upload/Controllers/UploadController.cs b/Teknik/Areas/Upload/Controllers/UploadController.cs index 8b00198..493aacb 100644 --- a/Teknik/Areas/Upload/Controllers/UploadController.cs +++ b/Teknik/Areas/Upload/Controllers/UploadController.cs @@ -142,6 +142,7 @@ namespace Teknik.Areas.Upload.Controllers // User did not supply key [HttpGet] + [TrackDownload] [AllowAnonymous] public ActionResult Download(string file) { diff --git a/Teknik/Areas/User/Utility/UserHelper.cs b/Teknik/Areas/User/Utility/UserHelper.cs index a56d4b2..5ea0fc7 100644 --- a/Teknik/Areas/User/Utility/UserHelper.cs +++ b/Teknik/Areas/User/Utility/UserHelper.cs @@ -254,7 +254,7 @@ namespace Teknik.Areas.Users.Utility try { // Update uploads - List uploads = db.Uploads.Include("User").Where(u => u.User.Username == user.Username).ToList(); + List uploads = db.Uploads.Where(u => u.User.Username == user.Username).ToList(); if (uploads != null) { foreach (Upload.Models.Upload upload in uploads) @@ -265,7 +265,7 @@ namespace Teknik.Areas.Users.Utility } // Update pastes - List pastes = db.Pastes.Include("User").Where(u => u.User.Username == user.Username).ToList(); + List pastes = db.Pastes.Where(u => u.User.Username == user.Username).ToList(); if (pastes != null) { foreach (Paste.Models.Paste paste in pastes) @@ -276,7 +276,7 @@ namespace Teknik.Areas.Users.Utility } // Update shortened urls - List shortUrls = db.ShortenedUrls.Include("User").Where(u => u.User.Username == user.Username).ToList(); + List shortUrls = db.ShortenedUrls.Where(u => u.User.Username == user.Username).ToList(); if (shortUrls != null) { foreach (ShortenedUrl shortUrl in shortUrls) @@ -287,14 +287,14 @@ namespace Teknik.Areas.Users.Utility } // Delete Blogs - Blog.Models.Blog blog = db.Blogs.Include("BlogPosts").Include("BlogPosts.Comments").Include("User").Where(u => u.User.Username == user.Username).FirstOrDefault(); + Blog.Models.Blog blog = db.Blogs.Where(u => u.User.Username == user.Username).FirstOrDefault(); if (blog != null) { db.Blogs.Remove(blog); } // Delete post comments - List postComments = db.BlogComments.Include("User").Where(u => u.User.Username == user.Username).ToList(); + List postComments = db.BlogComments.Where(u => u.User.Username == user.Username).ToList(); if (postComments != null) { foreach (BlogPostComment postComment in postComments) @@ -304,7 +304,7 @@ namespace Teknik.Areas.Users.Utility } // Delete podcast comments - List podComments = db.PodcastComments.Include("User").Where(u => u.User.Username == user.Username).ToList(); + List podComments = db.PodcastComments.Where(u => u.User.Username == user.Username).ToList(); if (podComments != null) { foreach (Podcast.Models.PodcastComment podComment in podComments) @@ -314,7 +314,7 @@ namespace Teknik.Areas.Users.Utility } // Delete Recovery Email Verifications - List verCodes = db.RecoveryEmailVerifications.Include("User").Where(r => r.User.Username == user.Username).ToList(); + List verCodes = db.RecoveryEmailVerifications.Where(r => r.User.Username == user.Username).ToList(); if (verCodes != null) { foreach (RecoveryEmailVerification verCode in verCodes) @@ -324,7 +324,7 @@ namespace Teknik.Areas.Users.Utility } // Delete Password Reset Verifications - List verPass = db.ResetPasswordVerifications.Include("User").Where(r => r.User.Username == user.Username).ToList(); + List verPass = db.ResetPasswordVerifications.Where(r => r.User.Username == user.Username).ToList(); if (verPass != null) { foreach (ResetPasswordVerification ver in verPass) @@ -346,7 +346,7 @@ namespace Teknik.Areas.Users.Utility public static string CreateRecoveryEmailVerification(TeknikEntities db, Config config, User user) { // Check to see if there already is a verification code for the user - List verCodes = db.RecoveryEmailVerifications.Include("User").Where(r => r.User.Username == user.Username).ToList(); + List verCodes = db.RecoveryEmailVerifications.Where(r => r.User.Username == user.Username).ToList(); if (verCodes != null && verCodes.Any()) { foreach (RecoveryEmailVerification verCode in verCodes) @@ -402,11 +402,11 @@ Thank you and enjoy! public static bool VerifyRecoveryEmail(TeknikEntities db, Config config, string username, string code) { User user = GetUser(db, username); - RecoveryEmailVerification verCode = db.RecoveryEmailVerifications.Include("User").Where(r => r.User.Username == username && r.Code == code).FirstOrDefault(); + RecoveryEmailVerification verCode = db.RecoveryEmailVerifications.Where(r => r.User.Username == username && r.Code == code).FirstOrDefault(); if (verCode != null) { // We have a match, so clear out the verifications for that user - List verCodes = db.RecoveryEmailVerifications.Include("User").Where(r => r.User.Username == username).ToList(); + List verCodes = db.RecoveryEmailVerifications.Where(r => r.User.Username == username).ToList(); if (verCodes != null && verCodes.Any()) { foreach (RecoveryEmailVerification ver in verCodes) @@ -427,7 +427,7 @@ Thank you and enjoy! public static string CreateResetPasswordVerification(TeknikEntities db, Config config, User user) { // Check to see if there already is a verification code for the user - List verCodes = db.ResetPasswordVerifications.Include("User").Where(r => r.User.Username == user.Username).ToList(); + List verCodes = db.ResetPasswordVerifications.Where(r => r.User.Username == user.Username).ToList(); if (verCodes != null && verCodes.Any()) { foreach (ResetPasswordVerification verCode in verCodes) @@ -479,11 +479,11 @@ If you recieved this email and you did not reset your password, you can ignore t public static bool VerifyResetPassword(TeknikEntities db, Config config, string username, string code) { User user = GetUser(db, username); - ResetPasswordVerification verCode = db.ResetPasswordVerifications.Include("User").Where(r => r.User.Username == username && r.Code == code).FirstOrDefault(); + ResetPasswordVerification verCode = db.ResetPasswordVerifications.Where(r => r.User.Username == username && r.Code == code).FirstOrDefault(); if (verCode != null) { // We have a match, so clear out the verifications for that user - List verCodes = db.ResetPasswordVerifications.Include("User").Where(r => r.User.Username == username).ToList(); + List verCodes = db.ResetPasswordVerifications.Where(r => r.User.Username == username).ToList(); if (verCodes != null && verCodes.Any()) { foreach (ResetPasswordVerification ver in verCodes) diff --git a/Teknik/Global.asax.cs b/Teknik/Global.asax.cs index 7940408..e3165e0 100644 --- a/Teknik/Global.asax.cs +++ b/Teknik/Global.asax.cs @@ -80,7 +80,7 @@ namespace Teknik using (TeknikEntities entities = new TeknikEntities()) { - User user = entities.Users.Include("Groups").Include("Groups.Roles").SingleOrDefault(u => u.Username == username); + User user = entities.Users.SingleOrDefault(u => u.Username == username); if (user != null) {