public static async void RefreshLatestVersion() { while (ServerContext.ServerRunning) { LatestVersion = GithubUpdateChecker.GetLatestVersion(); //Sleep for 30 minutes... await Task.Delay(30 * 60 * 1000); } }
/// <summary> /// Checks if a new version exists and if it does, it stops the master server, downloads it and restarts it again /// </summary> private static void CheckNewVersion(bool nightly) { Task.Run(async() => { while (true) { var latestVersion = nightly ? AppveyorUpdateChecker.GetLatestVersion() : GithubUpdateChecker.GetLatestVersion(); if (latestVersion > CurrentVersion) { var url = AppveyorUpdateDownloader.GetZipFileUrl(AppveyorProduct.MasterServer, DebugVersion); if (!string.IsNullOrEmpty(url)) { ConsoleLogger.Log(LogLevels.Normal, $"Found a new updated version! Current: {CurrentVersion} Latest: {latestVersion}"); ConsoleLogger.Log(LogLevels.Normal, "Downloading and restarting program...."); var zipFileName = url.Substring(url.LastIndexOf("/") + 1); if (CommonDownloader.DownloadZipFile(url, Path.Combine(Directory.GetCurrentDirectory(), zipFileName))) { StopMasterServerDll(); AppveyorUpdateExtractor.ExtractZipFileToDirectory(Path.Combine(Directory.GetCurrentDirectory(), zipFileName), Directory.GetCurrentDirectory(), AppveyorProduct.MasterServer); StartMasterServerDll(); } } } //Sleep for 5 minutes... await Task.Delay(5 * 1000 * 60); } }); }