Esempio n. 1
0
        static void Main()
        {
            SquirrelAwareApp.HandleEvents(
                OnInitialInstall,
                OnAppUpdate,
                onAppUninstall: OnAppUninstall,
                onFirstRun: OnFirstRun);

            AppHost = new AppHost();

            Cef.EnableHighDPISupport();
            Cef.Initialize(new CefSettings());

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            try
            {
                AppHost.Init().Start("http://*:2337/");
                "ServiceStack SelfHost listening at {0} ".Fmt(HostUrl).Print();
                Form = new FormMain();
            }
            catch (Exception e)
            {
                "Listening to existing service at {0}".Print(HostUrl);
                Form = new FormMain(startRight: true);
            }

            Form.Disposed += (sender, args) => AppUpdater.Dispose();
            Application.Run(Form);
        }
Esempio n. 2
0
 public void PerformUpdate()
 {
     AppUpdater.ApplyUpdates(new AppSettings().GetString("UpdateManagerUrl")).ContinueWith(t =>
     {
         formMain.InvokeOnUiThreadIfRequired(() =>
         {
             formMain.Close();
             UpdateManager.RestartApp();
         });
     });
 }
Esempio n. 3
0
        public void CheckForUpdates()
        {
            var appSettings     = new AppSettings();
            var checkForUpdates = appSettings.Get <bool>("EnableAutoUpdate");

            if (!checkForUpdates)
            {
                return;
            }

            var releaseFolderUrl = appSettings.GetString("UpdateManagerUrl");

            try
            {
                var updatesAvailableTask = AppUpdater.CheckForUpdates(releaseFolderUrl);
                updatesAvailableTask.ContinueWith(isAvailable =>
                {
                    isAvailable.Wait(TimeSpan.FromMinutes(1));
                    bool updatesAvailable = isAvailable.Result;
                    //Only check once one launch then release UpdateManager.
                    if (!updatesAvailable)
                    {
                        AppUpdater.Dispose();
                        return;
                    }
                    if (formMain == null)
                    {
                        return;
                    }
                    // Notify web client updates are available.
                    formMain.InvokeOnUiThreadIfRequired(() =>
                    {
                        formMain.ChromiumBrowser.GetMainFrame().ExecuteJavaScriptAsync("window.updateAvailable();");
                    });
                });
            }
            catch (Exception e)
            {
                // Error reaching update server
            }
        }
Esempio n. 4
0
 public static void OnAppUninstall(Version version)
 {
     // Hook for application uninstall
     AppUpdater.RemoveShortcutForThisExe();
 }
Esempio n. 5
0
 public static void OnAppUpdate(Version version)
 {
     // Hook for application update, CheckForUpdates() initiates this.
     AppUpdater.CreateShortcutForThisExe();
 }
Esempio n. 6
0
 public static void OnInitialInstall(Version version)
 {
     // Hook for first install
     AppUpdater.CreateShortcutForThisExe();
 }