private void rmiServices_RefreshAll_Click(object sender, EventArgs e) { if (this.WatchConnection == null) { return; } WatchConnection.Async(a => a.GetServicesAnalytics(), b => UpdateServiceList(b)); }
private void tmRefresh_Tick(object sender, EventArgs e) { //Continue when watching if (this.WatchConnection == null) { return; } WatchConnection.Async(a => a.GetServicesAnalytics(), b => UpdateServiceList(b)); }
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); } }
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); }