private void ExecuteDeleteMonitorSettingCommand(object deleteItem) { var monitorModel = deleteItem as MonitorModel; if (monitorModel == null) { return; } //检查发送标志位(若为true则不允许删除配置) if (!_monitorFlag) { MessageBox.Show("当前正在监控文件夹,不允许删除任何监控配置项!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //删除监控配置 MonitorCollection.Remove(monitorModel); ConfigHelper.Instance.SaveSettings(); if (monitorModel.SubscribeInfos == null || monitorModel.SubscribeInfos.Count == 0) { return; } //删除监控配置后通知相关订阅方,删除相关配置 Task.Factory.StartNew(() => { foreach (var subscribeInfo in monitorModel.SubscribeInfos) { SynchronousSocketManager.Instance.SendDeleteMonitorInfo(UtilHelper.Instance.GetIPEndPoint(subscribeInfo.SubscribeIP), monitorModel.MonitorAlias); } }); }
private void ExecuteDeleteMonitorCommand(object deleteItem) { var model1 = deleteItem as MonitorModel; if (model1 != null) { //检查发送标志位(若为true则不允许删除配置) if (SynchronousSocketManager.Instance.SendingFilesFlag) { MessageBox.Show("当前正在发送文件,不允许删除任何监控配置项!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //删除监控配置 MonitorCollection.Remove(model1); if (string.IsNullOrEmpty(model1.SubscribeIP)) { return; } //删除监控配置后通知相关订阅方,删除相关配置 SynchronousSocketManager.Instance.SendDeleteMonitorInfo(UtilHelper.Instance.GetIPEndPoint(model1.SubscribeIP), model1.MonitorDirectory); } else { var model2 = deleteItem as SubscribeModel; if (model2 == null) { return; } //检查接收标志位(若为true则不允许删除配置) if (SynchronousSocketManager.Instance.ReceivingFlag) { MessageBox.Show("当前正在接收,不允许删除任何接收配置项!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //删除接收配置 SubscribeCollection.Remove(model2); //删除接收配置后,综合接收配置决定是否通知监控端删除订阅信息 if (SubscribeCollection.FirstOrDefault(s => s.MonitorIP == model2.MonitorIP) == null) { SynchronousSocketManager.Instance.SendUnregisterSubscribeInfo(UtilHelper.Instance.GetIPEndPoint(string.Format("{0}:{1}", model2.MonitorIP, model2.MonitorListenPort)), model2.MonitorDirectory); } } }