From a668ea04ecf2dbd73cccb7f7e06af9ff104001df Mon Sep 17 00:00:00 2001 From: Drewster727 Date: Wed, 30 Mar 2016 11:06:35 -0500 Subject: [PATCH] don't query the session as much in the modules, rely on a variable from the base class and store the username as needed --- PlexRequests.UI/Modules/BaseModule.cs | 18 ++++++++++++++++-- PlexRequests.UI/Modules/RequestsModule.cs | 8 ++++---- PlexRequests.UI/Modules/SearchModule.cs | 16 ++++++++-------- PlexRequests.UI/Program.cs | 2 +- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/PlexRequests.UI/Modules/BaseModule.cs b/PlexRequests.UI/Modules/BaseModule.cs index 67dc1b553..f34c46f17 100644 --- a/PlexRequests.UI/Modules/BaseModule.cs +++ b/PlexRequests.UI/Modules/BaseModule.cs @@ -33,16 +33,30 @@ namespace PlexRequests.UI.Modules { public class BaseModule : NancyModule { + private string _username; + + protected string Username + { + get + { + if (string.IsNullOrEmpty(_username)) + { + _username = Session[SessionKeys.UsernameKey].ToString(); + } + return _username; + } + } + public BaseModule() { - Before += (ctx)=> CheckAuth(); + Before += (ctx) => CheckAuth(); } public BaseModule(string modulePath) : base(modulePath) { Before += (ctx) => CheckAuth(); } - + private Response CheckAuth() { diff --git a/PlexRequests.UI/Modules/RequestsModule.cs b/PlexRequests.UI/Modules/RequestsModule.cs index b1bfd1dcf..631cfbfea 100644 --- a/PlexRequests.UI/Modules/RequestsModule.cs +++ b/PlexRequests.UI/Modules/RequestsModule.cs @@ -84,7 +84,7 @@ namespace PlexRequests.UI.Modules var dbMovies = Service.GetAll().Where(x => x.Type == RequestType.Movie); if (settings.UsersCanViewOnlyOwnRequests && !isAdmin) { - dbMovies = dbMovies.Where(x => x.UserHasRequested(Session[SessionKeys.UsernameKey].ToString())); + dbMovies = dbMovies.Where(x => x.UserHasRequested(Username)); } var viewModel = dbMovies.Select(movie => { @@ -127,7 +127,7 @@ namespace PlexRequests.UI.Modules var dbTv = Service.GetAll().Where(x => x.Type == RequestType.TvShow); if (settings.UsersCanViewOnlyOwnRequests && !isAdmin) { - dbTv = dbTv.Where(x => x.UserHasRequested(Session[SessionKeys.UsernameKey].ToString())); + dbTv = dbTv.Where(x => x.UserHasRequested(Username)); } var viewModel = dbTv.Select(tv => { @@ -194,7 +194,7 @@ namespace PlexRequests.UI.Modules } originalRequest.Issues = issue; originalRequest.OtherMessage = !string.IsNullOrEmpty(comment) - ? $"{Session[SessionKeys.UsernameKey]} - {comment}" + ? $"{Username} - {comment}" : string.Empty; @@ -202,7 +202,7 @@ namespace PlexRequests.UI.Modules var model = new NotificationModel { - User = Session[SessionKeys.UsernameKey].ToString(), + User = Username, NotificationType = NotificationType.Issue, Title = originalRequest.Title, DateTime = DateTime.Now, diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs index 59614a0c2..6f566217a 100644 --- a/PlexRequests.UI/Modules/SearchModule.cs +++ b/PlexRequests.UI/Modules/SearchModule.cs @@ -187,9 +187,9 @@ namespace PlexRequests.UI.Modules if (existingRequest != null) { // check if the current user is already marked as a requester for this movie, if not, add them - if (!existingRequest.UserHasRequested(Session[SessionKeys.UsernameKey].ToString())) + if (!existingRequest.UserHasRequested(Username)) { - existingRequest.RequestedUsers.Add(Session[SessionKeys.UsernameKey].ToString()); + existingRequest.RequestedUsers.Add(Username); RequestService.UpdateRequest(existingRequest); } return Response.AsJson(new JsonResponseModel { Result = false, Message = settings.UsersCanViewOnlyOwnRequests ? $"{fullMovieName} was successfully added!" : $"{fullMovieName} has already been requested!" }); @@ -222,12 +222,12 @@ namespace PlexRequests.UI.Modules Status = movieInfo.Status, RequestedDate = DateTime.Now, Approved = false, - RequestedUsers = new List() { Session[SessionKeys.UsernameKey].ToString() }, + RequestedUsers = new List() { Username }, Issues = IssueState.None, }; Log.Trace(settings.DumpJson()); - if (!settings.RequireMovieApproval || settings.NoApprovalUserList.Any(x => x.Equals(Session[SessionKeys.UsernameKey].ToString(), StringComparison.OrdinalIgnoreCase))) + if (!settings.RequireMovieApproval || settings.NoApprovalUserList.Any(x => x.Equals(Username, StringComparison.OrdinalIgnoreCase))) { var cpSettings = CpService.GetSettings(); @@ -325,9 +325,9 @@ namespace PlexRequests.UI.Modules if (existingRequest != null) { // check if the current user is already marked as a requester for this show, if not, add them - if (!existingRequest.UserHasRequested(Session[SessionKeys.UsernameKey].ToString())) + if (!existingRequest.UserHasRequested(Username)) { - existingRequest.RequestedUsers.Add(Session[SessionKeys.UsernameKey].ToString()); + existingRequest.RequestedUsers.Add(Username); RequestService.UpdateRequest(existingRequest); } return Response.AsJson(new JsonResponseModel { Result = false, Message = settings.UsersCanViewOnlyOwnRequests ? $"{fullShowName} was successfully added!" : $"{fullShowName} has already been requested!" }); @@ -358,7 +358,7 @@ namespace PlexRequests.UI.Modules Status = showInfo.status, RequestedDate = DateTime.Now, Approved = false, - RequestedUsers = new List() { Session[SessionKeys.UsernameKey].ToString() }, + RequestedUsers = new List() { Username }, Issues = IssueState.None, ImdbId = showInfo.externals?.imdb ?? string.Empty, SeasonCount = showInfo.seasonCount @@ -381,7 +381,7 @@ namespace PlexRequests.UI.Modules model.SeasonList = seasonsList.ToArray(); - if (!settings.RequireTvShowApproval || settings.NoApprovalUserList.Any(x => x.Equals(Session[SessionKeys.UsernameKey].ToString(), StringComparison.OrdinalIgnoreCase))) + if (!settings.RequireTvShowApproval || settings.NoApprovalUserList.Any(x => x.Equals(Username, StringComparison.OrdinalIgnoreCase))) { var sonarrSettings = SonarrService.GetSettings(); var sender = new TvSender(SonarrApi, SickrageApi); diff --git a/PlexRequests.UI/Program.cs b/PlexRequests.UI/Program.cs index 5f07f7436..c8f863f40 100644 --- a/PlexRequests.UI/Program.cs +++ b/PlexRequests.UI/Program.cs @@ -69,7 +69,7 @@ namespace PlexRequests.UI if (port == -1) port = GetStartupPort(); - var options = new StartOptions( $"http://+:{port}") + var options = new StartOptions(Debugger.IsAttached ? $"http://localhost:{port}" : $"http://+:{port}") { ServerFactory = "Microsoft.Owin.Host.HttpListener" };