Exemplo n.º 1
0
        private void rmiServices_RefreshAll_Click(object sender, EventArgs e)
        {
            if (this.WatchConnection == null)
            {
                return;
            }

            WatchConnection.Async(a => a.GetServicesAnalytics(), b => UpdateServiceList(b));
        }
Exemplo n.º 2
0
        private void tmRefresh_Tick(object sender, EventArgs e)
        {
            //Continue when watching
            if (this.WatchConnection == null)
            {
                return;
            }

            WatchConnection.Async(a => a.GetServicesAnalytics(), b => UpdateServiceList(b));
        }
Exemplo n.º 3
0
        private void Item_CheckStateChanged(object sender, EventArgs e)
        {
            var item = sender as ToolStripMenuItem;

            if (item == null)
            {
                return;
            }

            dynamic t = item.Tag;

            var processId = t.id;
            var type      = t.type;

            if (!item.Checked)
            {
                if (processId == WatchingProcessID)
                {
                    if (MessageBox.Show("Disconnect ?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                    {
                        item.Checked = true;
                        return;
                    }

                    WatchConnection.Stop();

                    lsvServices.BeginUpdate();
                    lsvServices.Items.Clear();
                    lsvServices.EndUpdate();
                }

                return;
            }


            if (processId == Process.GetCurrentProcess().Id)
            {
                item.Checked = false;
                return;
            }

            if (type == "netpipes")
            {
                StartWatching(processId);
            }
            else if (type == "tcp")
            {
                StartWatching("localhost", 50000);
            }
        }
Exemplo n.º 4
0
        private void PrepareWatcher()
        {
            WatchConnection.Disconnected += (s, en) =>
            {
                WatchConnection   = null;
                WatchingProcessID = 0;

                lblStatus.Text             = "Disconnected";
                lblStatus.ForeColor        = Color.Black;
                lblActiveServiceCount.Text = "0";
                //tmRefresh.Enabled = false;

                rmiServices.Enabled = false;

                tmRefresh.Enabled = false;
                tmPing.Enabled    = false;
            };

            WatchConnection.Faulted += (s, en) =>
            {
                WatchConnection   = null;
                WatchingProcessID = 0;

                lblStatus.Text             = "Failed";
                lblStatus.ForeColor        = Color.Red;
                lblActiveServiceCount.Text = "0";

                rmiServices.Enabled = false;
                tmRefresh.Enabled   = false;
                tmPing.Enabled      = false;

                MessageBox.Show("Connection failed!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            };

            WatchConnection.Start();

            if (WatchConnection == null)
            {
                return;
            }

            WatchConnection.ClientCallback.ServerShutdownStarted += (s, en) =>
            {
                //tmRefresh.Enabled = false;
            };

            WatchConnection.ClientCallback.ServerShutdownCompleted += (s, en) =>
            {
                if (this.WatchConnection != null)
                {
                    this.WatchConnection.Stop();
                    this.WatchConnection = null;
                }

                this.WatchingProcessID = 0;

                this.Manager = null;

                lsvServices.BeginUpdate();
                lsvServices.Items.Clear();
                lsvServices.EndUpdate();

                tmRefresh.Enabled = false;
                tmPing.Enabled    = false;
            };

            WatchConnection.ClientCallback.ServiceChanged += (s, en) =>
            {
                var item = lsvServices.Items.Cast <ListViewDataItem>().FirstOrDefault(a => (Guid)a.Tag == en.ServiceId);
                if (item == null)
                {
                    return;
                }

                if (en.Status == ServiceAnalytics.eStatus.offline)
                {
                    item.Image = null;
                }



                switch (en.Status)
                {
                case eStatus.offline:

                    item[1] = "-";
                    item[3] = "offline";

                    break;

                case eStatus.shutting_down:

                    //item[1] = en.PID.ToString();
                    item[3] = "shutting down";

                    break;

                case eStatus.running:

                    item[1] = en.PID.ToString();
                    item[3] = "running";

                    break;

                case eStatus.updated:


                    break;

                default:

                    item[3] = en.Status.ToString();

                    break;
                }

                item[4] = en.Restarts.ToString();
                item[5] = (en.AutoRestart ? "yes" : "no");
            };

            WatchConnection.ClientCallback.ServiceActivityPing += (s, en) =>
            {
                lsvServices.BeginUpdate();

                foreach (ListViewDataItem lvi in lsvServices.Items)
                {
                    if (lvi.Tag.ToString() != en.ServiceId.ToString())
                    {
                        continue;
                    }

                    var bmp = new Bitmap(Properties.Resources.led_on, 16, 16);
                    //Graphics.FromImage(bmp).FillRectangle(Brushes.Black, 0, 0, 16, 16);

                    lvi.Image = bmp;
                }

                lsvServices.EndUpdate();
            };

            rmiServices.Enabled = true;


            tmRefresh_Tick(null, null);
        }