Ejemplo n.º 1
0
 private void updateAvailableToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show(
             "An update is available for install. Do you want to install it now?" +
             (HasChange ? "\r\nWARNING! YOU HAVE UNSAVED CHANGES!" : ""),
             "Update Available",
             MessageBoxButtons.YesNo,
             MessageBoxIcon.Information,
             HasChange ? MessageBoxDefaultButton.Button2 : MessageBoxDefaultButton.Button1) == DialogResult.Yes)
     {
         if (!UpdateHandler.PerformUpdate())
         {
             Tools.E("We are currently unable to update your application.", "Update error");
         }
     }
 }
Ejemplo n.º 2
0
        static int Main(string[] args)
        {
            ErrorHandler ReleaseModeErrorHandler;

            Log.Write("Application version {0} start", Tools.CurrentVersion);
            //Set "NOFORM" to better experiment
#if !NOFORM
            if (!DEBUG)
            {
                ReleaseModeErrorHandler              = new ErrorHandler();
                ReleaseModeErrorHandler.ErrorReport += delegate(Exception ex, ErrorHandlerEventArgs e)
                {
                    Log.Write("Sending error report");
                    var    Msg         = ErrorHandler.generateReport(ex);
                    var    MainForm    = Application.OpenForms.OfType <frmMain>().FirstOrDefault();
                    byte[] CurrentFile = null;
                    if (MainForm != null && MainForm.HasFileOpen)
                    {
                        var F = MainForm.CurrentFile;
                        using (var MS = new MemoryStream())
                        {
                            F.Export(MS);
                            MS.Position = 0;
                            CurrentFile = Compression.CompressData(MS.ToArray());
                        }
                    }
                    //Send report
                    e.Handled = ReleaseModeErrorHandler.UploadReport(Msg, CurrentFile == null ? new byte[0] : CurrentFile);
                };
            }
            //Perform update automatically if it's pending
            if (!DEBUG && args.Length == 0 && File.Exists(UpdateHandler.DefaultUpdateExecutable))
            {
                if (UpdateHandler.PerformUpdate())
                {
                    Log.Write("Application version {0} end (Update success)", Tools.CurrentVersion);
                    Log.Close();
                    return(RET.SUCCESS);
                }
            }
            //Only run main application part if no update was performed
            if (DEBUG || !UpdateHandler.Update())
            {
                //Remove console handle to not block any scripts.
                Tools.FreeConsole();
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new frmMain(args.FirstOrDefault()));
            }
            Log.Write("Application version {0} end", Tools.CurrentVersion);
            Log.Close();
            return(RET.SUCCESS);
#else
            Log.Write("Running in test mode");
            //Allocate console or the Console.ReadKey() will crash
            Tools.AllocConsole();

            Console.Error.WriteLine("Arguments: {0}", string.Join("\r\n", args));

            Test();
            Console.Error.WriteLine("#END");
            return(Exit(RET.SUCCESS));
#endif
        }