diff --git a/PlexRequests.UI/Bootstrapper.cs b/PlexRequests.UI/Bootstrapper.cs index c2e31d5dd..4966373c3 100644 --- a/PlexRequests.UI/Bootstrapper.cs +++ b/PlexRequests.UI/Bootstrapper.cs @@ -68,9 +68,7 @@ namespace PlexRequests.UI protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { - container.Register(); - container.Register(); - container.Register(new DbConfiguration(new SqliteFactory())); + container.Register().AsSingleton(); // Settings @@ -88,7 +86,6 @@ namespace PlexRequests.UI // Repo's container.Register, GenericRepository>(); - container.Register, UserRepository>(); container.Register, GenericRepository>(); container.Register(); container.Register(); @@ -121,9 +118,16 @@ namespace PlexRequests.UI var loc = ServiceLocator.Instance; loc.SetContainer(container); } + protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { + container.Register(new DbConfiguration(new SqliteFactory())); + container.Register, UserRepository>(); + container.Register(); + container.Register(); + + CookieBasedSessions.Enable(pipelines, CryptographyConfiguration.Default); StaticConfiguration.DisableErrorTraces = false; diff --git a/PlexRequests.UI/PlexRequests.UI.csproj b/PlexRequests.UI/PlexRequests.UI.csproj index bd57c59b5..f9058cdb2 100644 --- a/PlexRequests.UI/PlexRequests.UI.csproj +++ b/PlexRequests.UI/PlexRequests.UI.csproj @@ -80,6 +80,7 @@ + ..\packages\CommandLineParser.2.0.275-beta\lib\net45\CommandLine.dll diff --git a/PlexRequests.UI/Program.cs b/PlexRequests.UI/Program.cs index fd7688ecc..1bb0da24c 100644 --- a/PlexRequests.UI/Program.cs +++ b/PlexRequests.UI/Program.cs @@ -39,6 +39,9 @@ using PlexRequests.Helpers; using PlexRequests.Store; using PlexRequests.Store.Repository; using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Windows.Forms; using CommandLine; @@ -62,10 +65,10 @@ namespace PlexRequests.UI e => -1); var updated = result.MapResult(x => x.Updated, e => UpdateValue.None); - //TODO - + CheckUpdate(updated); + PrintToConsole("Starting Up! Please wait, this can usually take a few seconds.", ConsoleColor.Yellow); - + Log.Trace("Getting product version"); WriteOutVersion(); @@ -163,11 +166,37 @@ namespace PlexRequests.UI { if (val == UpdateValue.Failed) { - + PrintToConsole("Update Failed", ConsoleColor.Red); } if (val == UpdateValue.Updated) { - // TODO Change the name of PlexRequests.Updater.exe_Updated and delete the old version + PrintToConsole("Finishing Update", ConsoleColor.Yellow); + var applicationPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath)); + var files = Directory.GetFiles(applicationPath, "PlexRequests.*", SearchOption.TopDirectoryOnly); + var oldUpdater = files.FirstOrDefault(x => x == $"{applicationPath}\\PlexRequests.Updater.exe"); + var newUpdater = files.FirstOrDefault(x => x == $"{applicationPath}\\PlexRequests.Updater.exe_Updated"); + + if (oldUpdater == null || newUpdater == null) + { + PrintToConsole("Looks like there was nothing to update.", ConsoleColor.Yellow); + return; + } + + try + { + File.Copy(oldUpdater, "PlexRequests.Updater.exe_Old", true); + File.Delete(oldUpdater); + File.Copy(newUpdater, "PlexRequests.Updater.exe", true); + File.Delete(newUpdater); + + File.Delete("PlexRequests.Updater.exe_Old"); // Cleanup + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + PrintToConsole("Finished Update!", ConsoleColor.Yellow); } } } diff --git a/PlexRequests.UI/Start/UpdateValue.cs b/PlexRequests.UI/Start/UpdateValue.cs index 5c19d8f7c..0a994ed99 100644 --- a/PlexRequests.UI/Start/UpdateValue.cs +++ b/PlexRequests.UI/Start/UpdateValue.cs @@ -26,10 +26,10 @@ #endregion namespace PlexRequests.UI.Start { - public enum UpdateValue + public enum UpdateValue : int { - None, - Updated, - Failed + None = 0, + Updated = 1, + Failed = 2 } } \ No newline at end of file