private static void UpdateRowWithConfigurationData(DataGridViewRow row, ServerConfigurationData configurationData) { row.Cells["ColServerName"].Value = configurationData.ServerName; row.Cells["ColUserName"].Value = configurationData.UserName; row.Cells["ColPassword"].Value = configurationData.Password; row.Cells["ColCPUThreshold"].Value = configurationData.CPUThreshold; row.Cells["ColRAMThreshold"].Value = configurationData.RAMThreshold; row.Cells["ColDiskThreshold"].Value = configurationData.DiskThreshold; }
private DataGridViewRow AddNewServerMornitor(ServerConfigurationData newConfigurationData) { dgResult.Rows.Add(); DataGridViewRow newRow = dgResult.Rows[dgResult.Rows.Count - 1]; UpdateRowWithConfigurationData(newRow, newConfigurationData); GetServerUsageAsync(newConfigurationData); _configurations.Add(newConfigurationData); btnSave.Enabled = true; return(newRow); }
private void GetServerUsageAsyncForMail(object param) { if (param == null || !(param is ServerConfigurationData)) { //Report Error this.BeginInvoke(new Action(() => { MessageBox.Show("Invalid argument: param", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); })); iServer++; if (iServer == cntServer) { if (emailBody != string.Empty) { SendEmail(); } iServer = 0; } return; } ServerConfigurationData configuration = param as ServerConfigurationData; try { ServerLoadData result = ServerLoadHelper.GetServerUsage(configuration.ServerName, configuration.UserName, configuration.Password); iServer++; //Complete this.BeginInvoke(new Action <ServerLoadData>(OnGetServerUsageAsyncCompletedForMail), result); } catch (Exception ex) { iServer++; if (iServer == cntServer) { if (emailBody != string.Empty) { SendEmail(); } iServer = 0; } //Report Error this.BeginInvoke(new Action <string, Exception>(ReportErrorForEmail), configuration.ServerName, ex); } }
private void UpdateServerMornitor(DataGridViewRow currentRow, ServerConfigurationData updatedConfigurationData) { string originalServerName = currentRow.Cells["ColServerName"].Value.ToString(); string originalUserName = currentRow.Cells["ColUserName"].Value.ToString(); string originalPassword = currentRow.Cells["ColPassword"].Value.ToString(); decimal originalCPUThreshold = Convert.ToDecimal(currentRow.Cells["ColCPUThreshold"].Value); decimal originalRAMThreshold = Convert.ToDecimal(currentRow.Cells["ColRAMThreshold"].Value); decimal originalDiskThreshold = Convert.ToDecimal(currentRow.Cells["ColDiskThreshold"].Value); bool isChanged = !originalServerName.Equals(updatedConfigurationData.ServerName, StringComparison.CurrentCultureIgnoreCase) || !originalUserName.Equals(updatedConfigurationData.UserName, StringComparison.CurrentCultureIgnoreCase) || !originalPassword.Equals(updatedConfigurationData.Password, StringComparison.CurrentCultureIgnoreCase) || originalCPUThreshold != updatedConfigurationData.CPUThreshold || originalRAMThreshold != updatedConfigurationData.RAMThreshold || originalDiskThreshold != updatedConfigurationData.DiskThreshold; if (isChanged) { UpdateRowWithConfigurationData(currentRow, updatedConfigurationData); } GetServerUsageAsync(updatedConfigurationData); int originalConfigurationDataIndex = _configurations.FindIndex(c => c.ServerName.Equals(originalServerName, StringComparison.CurrentCultureIgnoreCase)); if (originalConfigurationDataIndex >= 0) { _configurations.RemoveAt(originalConfigurationDataIndex); _configurations.Insert(originalConfigurationDataIndex, updatedConfigurationData); } else { _configurations.Add(updatedConfigurationData); } if (isChanged) { btnSave.Enabled = true; } }
private void GetServerUsageAsync(object param) { if (param == null || !(param is ServerConfigurationData)) { iMonitorServer++; //Report Error this.BeginInvoke(new Action(() => { if (iMonitorServer == cntMonitorServer) { btnRefresh.Enabled = true; iMonitorServer = 0; } MessageBox.Show("Invalid argument: param", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); })); return; } ServerConfigurationData configuration = param as ServerConfigurationData; //Report Progress this.BeginInvoke(new Action <string, decimal>(ReportProgress), configuration.ServerName, new Decimal(0)); try { ServerLoadData result = ServerLoadHelper.GetServerUsage(configuration.ServerName, configuration.UserName, configuration.Password); iMonitorServer++; //Complete this.BeginInvoke(new Action <ServerLoadData>(OnGetServerUsageAsyncCompleted), result); } catch (Exception ex) { iMonitorServer++; //Report Error this.BeginInvoke(new Action <string, Exception>(ReportError), configuration.ServerName, ex); } }
private void GetServerUsageAsyncForMail(ServerConfigurationData configurationData) { ThreadPool.QueueUserWorkItem(new WaitCallback(GetServerUsageAsyncForMail), configurationData); }