Ejemplo n.º 1
0
        private static void initProxy(int timeout)
        {
            if (!IsAlive)
            {
                _proxyClient = new PrioritizerServiceClient();
                _proxyClient.InnerChannel.Faulted += new EventHandler(InnerChannel_Faulted);
            }
            Task pingTask = Task.Factory.StartNew(() => pingAsync(_loggedInUser));
            bool succeed  = false;

            try
            {
                succeed = pingTask.Wait(timeout);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (succeed && pingTask.Exception == null)
                {
                    IsAlive = true;
                    setHeartbeatInterval(PING_INTERVAL);
                }
                else
                {
                    IsAlive = false;
                    Logger.Instance.Warn(string.Format("Ping timeout: {0} ms", PING_TIMEOUT));
                    setHeartbeatInterval(PING_INTERVAL / 2);
                }
            }
        }
Ejemplo n.º 2
0
        private void Form1_Shown(object sender, EventArgs e)
        {
            PrioritizerServiceClient proxy = new PrioritizerServiceClient();

            //ClientPackage package = proxy.getLatestClient();

            //using (System.IO.StreamWriter outfile = new System.IO.StreamWriter(@"C:\2.zip"))
            //{
            //    outfile.Write(package.zip);
            //    outfile.Close();
            //}


            lblInfo.Text = "Checking for new version...";
            Thread.Sleep(300);
            string packageDirectory = Directory.GetCurrentDirectory() + PACKAGE_FOLDER_NAME;

            if (Directory.Exists(packageDirectory))
            {
                Application.DoEvents();

                if (!Directory.Exists(PRIORITIZER_INSTALL_DIR))
                {
                    Directory.CreateDirectory(PRIORITIZER_INSTALL_DIR);
                    lblInfo.Text = "Copy prioritizer package to local disk...";
                    CopyDirectory(packageDirectory, PRIORITIZER_INSTALL_DIR);
                    //Thread.Sleep(2000);
                }
                else
                {
                    var mostUpdatedClientVersion = proxy.getClientVersion();
                    var config = ConfigurationManager.OpenExeConfiguration(PRIORITIZER_INSTALL_DIR + PRIORITIZER_APPLICATION_EXECUTABLE_NAME);
                    var actualClientVersionOnLocalMachine = config.AppSettings.Settings["currentVer"];
                    if (mostUpdatedClientVersion != actualClientVersionOnLocalMachine.Value)
                    {
                        var userChoice = MessageBox.Show("New Prioritizer version exists. You Need to upgrade your Prioritizer version.\nClick 'OK' to terminate existing instances and get latest version.\nClick 'Cancel' to exit", "Upgrade", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                        if (userChoice == System.Windows.Forms.DialogResult.OK)
                        {
                            var prioritizerInstances = System.Diagnostics.Process.GetProcessesByName("prioritizer");
                            foreach (var instance in prioritizerInstances)
                            {
                                instance.Kill();
                            }
                        }
                        else
                        {
                            Application.Exit();
                            return;
                        }
                        lblInfo.Text = "Copy prioritizer package to local disk...";
                        CopyDirectory(packageDirectory, PRIORITIZER_INSTALL_DIR);
                        //Thread.Sleep(2000);
                    }
                }
            }
            else
            {
                lblInfo.Text = "Can't find package folder to copy from\nPlease contact administrator";
                Application.DoEvents();
                return;
            }


            lblInfo.Text = "Launching Prioritizer from local disk...";
            Application.DoEvents();
            Thread.Sleep(500);
            System.Diagnostics.Process.Start(PRIORITIZER_INSTALL_DIR + PRIORITIZER_APPLICATION_EXECUTABLE_NAME);

            lblInfo.Text = "Exiting...";
            Application.DoEvents();
            Thread.Sleep(500);
            Application.Exit();
        }