private void btnStartStop_Click(object sender, EventArgs e) { if (running) { auditor.Stop(); auditor.Dispose(); auditor = null; cbUseEmailProvider.Enabled = true; btnStartStop.Text = "Start"; running = false; } else { if (cbUseEmailProvider.Checked) { if (!context.TraceObservers.Where((ob) => ob is EmailProvider).Any()) { var emailProvider = new EmailProvider(); emailProvider.Init(context); context.TraceObservers.Add(emailProvider); } } else { if (context.TraceObservers.Where((ob) => ob is EmailProvider).Any()) { context.TraceObservers.Remove(context.TraceObservers.Find((ob) => ob is EmailProvider)); } } auditor = new SqlInstanceAuditor(context); auditor.Start(); cbUseEmailProvider.Enabled = false; btnStartStop.Text = "Stop"; running = true; } }