private async void TabbedAnythingForm_VisibleChanged(object sender, EventArgs e) { LOG.DebugFormat("Visible Changed - Visible: {0}", this.Visible); if (this.Visible) { DateTime lastUpdatePromptTime = Settings.Default.LastUpdatePromptTime; DateTime now = DateTime.Now; TimeSpan difference = now - lastUpdatePromptTime; var inject = new { lastUpdatePromptTime = lastUpdatePromptTime, now = now, difference = difference }; LOG.DebugInject("Visible Changed - Last Update Prompt Time: {lastUpdatePromptTime} - Now: {now} - Difference: {difference}", inject); if (difference >= TimeSpan.FromDays(1)) { Version newestVersion = await TabbedAnythingUtil.IsUpToDate(); if (newestVersion != null) { LOG.DebugFormat("Newest Version: {0}", newestVersion); if (DialogResult.Yes == MessageBox.Show("A new version of Tabbed Anything is available. Update now?\n\nNote: This will exit Tabbed Anything.", "New Update", MessageBoxButtons.YesNo)) { LOG.Debug("Update Prompt: Yes"); Settings.Default.LastUpdatePromptTime = DateTime.MinValue; Settings.Default.Save(); if (await TabbedAnythingUtil.UpdateApplication(newestVersion)) { LOG.Debug("Update - Exiting Application"); Application.Exit(); } else { LOG.Debug("Update - Error occurred"); MessageBox.Show("There was an error updating Tabbed Anything. Try again later."); } } else { LOG.Debug("Update Prompt: No"); Settings.Default.LastUpdatePromptTime = now; Settings.Default.Save(); MessageBox.Show("To update Tabbed Anything at a later date, go to Options->About and click Update.", "New Update", MessageBoxButtons.OK); } } } } }