Esempio n. 1
0
        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);
                }
            });
        }
Esempio n. 2
0
        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);
                }
            }
        }