private async void checkServerUpdatesButton_Click(object sender, RoutedEventArgs e) { ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusServerClientVersion); if (valheimPlusUpdate.NewVersion) { installServerUpdateButton.Content = String.Format("Install update {0}", valheimPlusUpdate.Version); installServerUpdateButton.IsEnabled = true; statusLabel.Foreground = Brushes.Green; statusLabel.Content = String.Format("Update {0} available for server client", valheimPlusUpdate.Version); } else { statusSnackBar.MessageQueue.Enqueue("No new server updates available"); } }
public static async Task <bool> DownloadValheimPlusUpdateAsync(string valheimPlusVersion, bool manageClient) { ValheimPlusUpdate valheimPlusUpdate = await CheckForValheimPlusUpdatesAsync(valheimPlusVersion); var wc = new System.Net.WebClient(); if (manageClient) { wc.DownloadFile(valheimPlusUpdate.WindowsGameClientDownloadURL, @"Data/ValheimPlusGameClient/WindowsClient.zip"); await InstallValheimPlusUpdateAsync(true, valheimPlusUpdate.Version); return(true); } else { wc.DownloadFile(valheimPlusUpdate.WindowsServerClientDownloadURL, @"Data/ValheimPlusServerClient/WindowsServer.zip"); await InstallValheimPlusUpdateAsync(false, valheimPlusUpdate.Version); return(true); } }
private async void installClientButton_Click(object sender, RoutedEventArgs e) { installClientUpdateButton.IsEnabled = false; ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusGameClientVersion); if (valheimPlusUpdate.NewVersion) { bool success = await UpdateManager.DownloadValheimPlusUpdateAsync(Settings.ValheimPlusGameClientVersion, true); if (success) { Settings = SettingsDAL.GetSettings(); statusLabel.Foreground = Brushes.Green; clientInstalledLabel.Content = String.Format("ValheimPlus {0} installed on client", Settings.ValheimPlusGameClientVersion); statusSnackBar.MessageQueue.Enqueue("Success! Game client updated to latest version"); installClientUpdateButton.IsEnabled = false; UISettingsInit(); } } }
public static async Task <ValheimPlusUpdate> CheckForValheimPlusUpdatesAsync(string valheimPlusVersion) { ValheimPlusUpdate valheimPlusUpdate = new ValheimPlusUpdate(); // Calling Github API to fetch versions of ValheimPlus var github = new GitHubClient(new ProductHeaderValue("ValheimPlusManager")); var releases = await github.Repository.Release.GetAll("valheimPlus", "ValheimPlus"); var latest = releases[0]; // Comparing latest release on ValheimPlus Github to currently installed locally var latestVersion = new Version(latest.TagName); var currentVersion = new Version(valheimPlusVersion); var result = latestVersion.CompareTo(currentVersion); if (result > 0) // If a new version is available { valheimPlusUpdate.NewVersion = true; valheimPlusUpdate.Version = latest.TagName; valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl; valheimPlusUpdate.WindowsGameClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl; return(valheimPlusUpdate); } else if (result < 0) { valheimPlusUpdate.NewVersion = false; valheimPlusUpdate.Version = latest.TagName; valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl; valheimPlusUpdate.WindowsGameClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl; return(valheimPlusUpdate); } else { valheimPlusUpdate.NewVersion = false; valheimPlusUpdate.Version = latest.TagName; valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl; valheimPlusUpdate.WindowsGameClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl; return(valheimPlusUpdate); } }
private async void installServerUpdateButton_Click(object sender, RoutedEventArgs e) { installServerUpdateButton.IsEnabled = false; installServerUpdateButton.Content = "Installing update ..."; ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusServerClientVersion); if (valheimPlusUpdate.NewVersion) { bool success = await UpdateManager.DownloadValheimPlusUpdateAsync(Settings.ValheimPlusServerClientVersion, false, false); if (success) { Settings = SettingsDAL.GetSettings(); serverInstalledLabel.Content = String.Format("ValheimPlus {0} installed on server", Settings.ValheimPlusServerClientVersion); statusSnackBar.MessageQueue.Enqueue("Success! Server client updated to latest version"); installServerUpdateButton.Content = "Update installed!"; installServerUpdateButton.IsEnabled = false; statusLabel.Visibility = Visibility.Hidden; } } }