private void AddOrEditEditSensor(CrudType crudType, ISensor iSensor) { switch (iSensor.SensorType) { case SensorType.Cpu: { var sensor = iSensor as CpuSensor; using (var dlg = new CpuSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Http: { var sensor = iSensor as HttpSensor; using (var dlg = new HttpSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Ftp: { var sensor = iSensor as FtpSensor; using (var dlg = new FtpSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Drivespace: { var sensor = iSensor as DriveSpaceSensor; using (var dlg = new DriveSpaceSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.FolderSize: { var sensor = iSensor as FolderSizeSensor; using (var dlg = new FolderSizeSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.FolderCheck: { var sensor = iSensor as FolderCheckSensor; using (var dlg = new FolderCheckSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.FileSize: { var sensor = iSensor as FileSizeSensor; using (var dlg = new FileSizeSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.FileCheck: { var sensor = iSensor as FileCheckSensor; using (var dlg = new FileCheckSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Ram: { var sensor = iSensor as RamSensor; using (var dlg = new RamSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Service: { var sensor = iSensor as ServiceSensor; using (var dlg = new ServiceSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Process: { var sensor = iSensor as ProcessSensor; using (var dlg = new ProcessSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.SqlConnection: { var sensor = iSensor as SqlConnectionSensor; using (var dlg = new SqlConnectionSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.IISApplicationPool: { var sensor = iSensor as IISApplicationPoolSensor; using (var dlg = new IISApplicationPoolSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.IISWebsite: { var sensor = iSensor as IISWebsiteSensor; using (var dlg = new IISWebsiteSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } case SensorType.Ping: { var sensor = iSensor as PingSensor; using (var dlg = new PingSensorForm(crudType, sensor, appConfig.MonitorSettings.GetAllSensors())) { if (dlg.ShowDialog(this) != DialogResult.OK) { return; } } break; } default: { MessageBox.Show("Unable to determine the Sensor Type"); return; } } if (crudType == CrudType.Add) { appConfig.AddMonitor(iSensor); } appConfig.SaveMonitorSettings(); LoadMonitorSensors(); }