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); } } } } }
private async void AboutBox_Load(object sender, EventArgs e) { _newestVersion = await TabbedAnythingUtil.IsUpToDate(); if (_newestVersion != null) { LOG.DebugFormat("Newer Version Available - New: {0} - Current: {1}", _newestVersion, AssemblyVersion); UpdateCheckLabel.Text = "Version {0} is available.".XFormat(_newestVersion.ToString(3)); UpdateButton.Enabled = true; } else { UpdateCheckLabel.Text = AssemblyTitle + " is up to date."; LOG.DebugFormat("Update to Date - Version: {0}", AssemblyVersion); } }
private async void UpdateButton_Click(object sender, EventArgs e) { LOG.DebugFormat("Update Click - Newest Version: {0}", _newestVersion.ToString(3)); if (DialogResult.Yes == MessageBox.Show("This will exit Tabbed Anything. Continue?", "New Update", MessageBoxButtons.YesNo)) { LOG.Debug("Update Prompt - OK"); 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."); } } }
static void Main(String[] args) { LOG.DebugFormat("Application Startup - Args: {0}", String.Join(", ", args)); LOG.DebugFormat("Version: {0}", Assembly.GetExecutingAssembly().GetName().Version); Application.ThreadException += Application_ThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; if (!TabbedAnythingUtil.VerifyAssemblyVersions()) { return; } Arguments a = new Arguments(); if (CommandLine.Parser.Default.ParseArguments(args, a)) { Mutex mutex = new Mutex(true, "{3a39a5c1-fac2-4059-81d4-5018abfa5142}+" + a.ProcessName); if (mutex.WaitOne(TimeSpan.Zero, true)) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); LOG.Debug("Starting Tabbed Anything"); Application.Run(ProgramForm.Create(a.Startup, a.ProcessName)); mutex.ReleaseMutex(); } else { LOG.Debug("Tabbed Anything instance already exists"); ProgramForm.ShowMe(a.ProcessName); } } LOG.Debug("Application End"); }