示例#1
0
        private void CNCdeleteclick(object sender, MouseButtonEventArgs e)
        {
            ICNCRulesManage fw     = new CNCRulesManage();
            string          dev_ip = (from devices in StaticGlobal.fwdev_list
                                      where devices.getDev_MAC() == StaticGlobal.firewallmac
                                      select devices).ToList <FWDeviceForm>()[0].getProtecDevIP_list()[0];
            int    connlimit = (CNCdataGrid.SelectedItem as CNCRuleDataTable).connlimit;
            string srcIP     = (CNCdataGrid.SelectedItem as CNCRuleDataTable).srcIP;
            string dstIP     = (CNCdataGrid.SelectedItem as CNCRuleDataTable).dstIP;
            string sport     = (CNCdataGrid.SelectedItem as CNCRuleDataTable).sport;
            string dport     = (CNCdataGrid.SelectedItem as CNCRuleDataTable).dport;
            bool   log       = (CNCdataGrid.SelectedItem as CNCRuleDataTable).log;

            if (fw.DelCNCRules(dev_ip, log, connlimit, srcIP, dstIP, sport, dport))
            {
                StaticGlobal.FireWalldevices[StaticGlobal.firewallindex].getCNCRule_list().Remove((CNCdataGrid.SelectedItem as CNCRuleDataTable));
                UserMessageBox.Show("提示", "规则删除成功!");
            }
            else
            {
                UserMessageBox.Show("提示", "规则删除失败,请检查设备连接!");
            }
        }
示例#2
0
        public void CNCApplying()
        {
            Dispatcher.Invoke(new Action(() =>
            {
                NewCNCRulebutton.IsEnabled = false;
                CNCApplybutton.IsEnabled   = false;
                CNCdataGrid.IsEnabled      = false;
                Closebutton.IsEnabled      = false;
            }));
            //找出需要删除的规则
            var deleteRules = StaticGlobal.CNColdrules.Where(deleteRule => !StaticGlobal.FireWalldevices[StaticGlobal.firewallindex].getCNCRule_list().Contains(deleteRule)).ToList();

            //找出需要增加的规则
            var    addRules     = StaticGlobal.FireWalldevices[StaticGlobal.firewallindex].getCNCRule_list().Where(addRule => !StaticGlobal.CNColdrules.Contains(addRule)).ToList();
            bool   CNCApplyFlag = true;
            string dev_ip       = (from devices in StaticGlobal.fwdev_list
                                   where devices.getDev_MAC() == StaticGlobal.firewallmac
                                   select devices).ToList <FWDeviceForm>()[0].getProtecDevIP_list()[0];
            ICNCRulesManage cncrule = new CNCRulesManage();

            //添加规则
            for (int i = 0; i < addRules.Count(); i++)
            {
                int    connlimit = addRules[i].connlimit;
                string srcIP     = addRules[i].srcIP;
                string dstIP     = addRules[i].dstIP;
                string sport     = addRules[i].sport;
                string dport     = addRules[i].dport;
                bool   log       = addRules[i].log;
                if (cncrule.AddCNCRules(dev_ip, log, connlimit, srcIP, dstIP, sport, dport))
                {
                    CNCApplyFlag = true;
                }
                else
                {
                    CNCApplyFlag = false;
                }
            }
            //删除规则
            for (int j = 0; j < deleteRules.Count(); j++)
            {
                int    connlimit = deleteRules[j].connlimit;
                string srcIP     = deleteRules[j].srcIP;
                string dstIP     = deleteRules[j].dstIP;
                string sport     = deleteRules[j].sport;
                string dport     = deleteRules[j].dport;
                bool   log       = deleteRules[j].log;
                if (cncrule.DelCNCRules(dev_ip, log, connlimit, srcIP, dstIP, sport, dport))
                {
                    CNCApplyFlag = true;
                }
                else
                {
                    CNCApplyFlag = false;
                }
            }
            Dispatcher.Invoke(new Action(() =>
            {
                if (CNCApplyFlag)
                {
                    UserMessageBox.Show("提示", "所有规则已成功应用!");
                }
                else
                {
                    UserMessageBox.Show("提示", "部分规则未成功应用,请检查设备之间的连接!");
                }
                this.Close();
            }
                                         ));
            CNCApplyThread.Abort();
        }