public void HandleUpdate(Constants.UpdateType updtype, string curversion) { if (checking == false) { type = updtype; cv = curversion; checking = true; Thread thUpdate; ThreadStart thUpdateStart; thUpdateStart = new ThreadStart(UpdaterProc); thUpdate = new Thread(thUpdateStart); thUpdate.IsBackground = true; thUpdate.Start(); } else { if (updtype != Constants.UpdateType.Auto) { UpdateMessageDlg updmsgdlg = new UpdateMessageDlg("Another update in progress. Please wait till its complete!", Constants.UpdateMessageType.Info); //Log("Another update in progress. Please wait till its complete!", Constants.LogMsgType.Error, true); updmsgdlg.ShowDialog(); updmsgdlg.Dispose(); } } }
private void UpdaterProc() { string remote = string.Empty; Constants.AvailableUpdate status = IsUpdateAvailable(ref remote); UpdateMessageDlg updmsgdlg; Constants.UpdateResponse dlgupdresp; if (status == Constants.AvailableUpdate.NoUpdate) { if (type == Constants.UpdateType.Manual) { updmsgdlg = new UpdateMessageDlg("Your version of Group Gator is latest! No new updates available", Constants.UpdateMessageType.Info); updmsgdlg.Display(); updmsgdlg.Dispose(); } checking = false; return; } else if (status == Constants.AvailableUpdate.NonCritical) { updmsgdlg = new UpdateMessageDlg("A new version of GroupGator is available. Do you want to download this update?", Constants.UpdateMessageType.Question); dlgupdresp = updmsgdlg.Display(); updmsgdlg.Dispose(); if (dlgupdresp == Constants.UpdateResponse.Yes) { GGDisk disk = new GGDisk(); try { if (File.Exists(disk.fileupd)) { File.Delete(disk.fileupd); } DownloadUpdate(remote, disk.fileupd); updmsgdlg = new UpdateMessageDlg("Update downloaded! Would you like to exit GroupGator now and install this new update?", Constants.UpdateMessageType.Question); dlgupdresp = updmsgdlg.Display(); updmsgdlg.Dispose(); if (dlgupdresp == Constants.UpdateResponse.Yes) { System.Diagnostics.Process.Start(disk.fileupd); //todo freeversion update Environment.Exit(0); } } catch (Exception ex) { ;// log.Show(ex.Message.ToString(), 0, true); } finally { checking = false; } } } else if (status == Constants.AvailableUpdate.Critical) { GGDisk disk = new GGDisk(); try { if (File.Exists(disk.fileupd)) { File.Delete(disk.fileupd); } DownloadUpdate(remote, disk.fileupd); updmsgdlg = new UpdateMessageDlg("CRITICAL UPDATE: GroupGATOR will now exit and apply the update.", Constants.UpdateMessageType.Info); updmsgdlg.Display(); updmsgdlg.Dispose(); System.Diagnostics.Process.Start(disk.fileupd); //todo freeversion update Environment.Exit(0); } catch (Exception ex) { ; } finally { checking = false; } } checking = false; }