public MainWindow() { UpdateLazerInstallationPath(); InitializeComponent(); //Setup dependencies before initialisation Client = new GitHubClient(new ProductHeaderValue("Osu!ModeManager", GetCurrentApplicationVersionName())); //Create new OAuth token if none exists, or if the latest is older than 8 hours if (Environment.GetCommandLineArgs().Contains("--flush") || Settings.Default.LatestToken.IsNullOrEmpty() || DateTime.UtcNow - Settings.Default.LatestTokenCreationTime >= TimeSpan.FromHours(8)) { Debug.WriteLine("New OAuth Token Required"); AuthoriseButton.Visibility = Visibility.Visible; } else { Debug.WriteLine("Reusing OAuth Token"); Client.Credentials = new Credentials(Settings.Default.LatestToken); Dispatcher.Invoke(async() => await SelfUpdateWindow.CreateUpdateChecker(this), DispatcherPriority.Normal); } //AuthoriseButton.Visibility = System.Windows.Visibility.Visible; LazerVersionCombo.SelectedIndex = 0; LoadGamemodes(); Debug.WriteLine("osu!lazer is installed at: " + LazerInstallationPath.FullName); }
public static async Task CreateUpdateChecker(Window Caller = null) { Debug.WriteLine("Checking for application updates..."); bool UpdateRequired = await CheckForUpdate(); if (UpdateRequired) { Debug.WriteLine("\tAn update is available."); Caller?.Hide(); SelfUpdateWindow SelfUpdateWindow = new SelfUpdateWindow(); SelfUpdateWindow.Show(); _Caller = Caller; SelfUpdateWindow.UpdateCurrentVersionLabel(MainWindow.GetCurrentApplicationVersionName()); SelfUpdateWindow.UpdateLatestVersionLabel(_LatestRelease.TagName); SelfUpdateWindow.DownloadButton.Visibility = Visibility.Visible; } else { Debug.WriteLine("\tThis application is up to date. :D"); } }