Beispiel #1
0
        private void SaveSettings()
        {
            var monitors   = MonitorCollection.ToList();
            var subscribes = SubscribeCollection.ToList();

            ConfigHelper.Instance.SaveSettings(monitors, subscribes, ListenPort, ScanPeriod, ExceptionSavePath);
        }
Beispiel #2
0
        private void ExecuteDeleteSubscribeSettingCommand(object deleteItem)
        {
            var subscribeModel = deleteItem as SubscribeModel;

            if (subscribeModel == null)
            {
                return;
            }
            //检查接收标志位(若为true则不允许删除配置)
            if (SynchronousSocketManager.Instance.ReceivingFlag)
            {
                MessageBox.Show("当前正在接收,不允许删除任何接收配置项!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            //删除接收配置
            SubscribeCollection.Remove(subscribeModel);
            ConfigHelper.Instance.SaveSettings();
            //删除接收配置后,综合接收配置决定是否通知监控端删除订阅信息
            Task.Factory.StartNew(() =>
            {
                if (SubscribeCollection.FirstOrDefault(s => s.MonitorIP == subscribeModel.MonitorIP && s.MonitorAlias == subscribeModel.MonitorAlias) == null)
                {
                    SynchronousSocketManager.Instance.SendUnregisterSubscribeInfo(UtilHelper.Instance.GetIPEndPoint(string.Format("{0}:{1}", subscribeModel.MonitorIP, subscribeModel.MonitorListenPort)), subscribeModel.MonitorAlias);
                }
            });
        }
Beispiel #3
0
 private void ShowAcceptProgress(string monitorIp, string monitorDirectory, string sendFile, double progress)
 {
     SubscribeCollection.Where(s => s.MonitorIP == monitorIp && s.MonitorDirectory == monitorDirectory).ToList().ForEach(s =>
     {
         s.AcceptFileName    = sendFile.Replace(monitorDirectory, s.AcceptDirectory);
         s.AcceptFilePercent = progress;
     });
 }
Beispiel #4
0
 private void ShowCompleteAcceptFile(string monitorIp, string monitorDirectory)
 {
     SubscribeCollection.Where(s => s.MonitorIP == monitorIp && s.MonitorDirectory == monitorDirectory).ToList().ForEach(s =>
     {
         s.AcceptFileName    = @"";
         s.AcceptFilePercent = 0.0;
     });
 }
Beispiel #5
0
        //private void ShowCompleteAcceptFile(string monitorIp, string monitorDirectory)
        //{
        //    SubscribeCollection.Where(s => s.MonitorIP == monitorIp && s.MonitorAlias == monitorDirectory).ToList().ForEach(s =>
        //    {
        //        s.AcceptFileName = @"";
        //        s.AcceptFilePercent = 0.0;
        //    });
        //}

        //private void ShowCompleteSendFile(string monitor)
        //{
        //    var monitorModel = MonitorCollection.FirstOrDefault(m => m.MonitorDirectory == monitor);
        //    if (monitorModel == null) return;
        //    monitorModel.SubscribeInfos.ToList().ForEach(s =>
        //    {
        //        s.TransferFileName = @"";
        //        s.TransferPercent = 0.0;
        //    });
        //}

        public void ShowAcceptProgress(string monitorIp, string monitorAlias, string acceptDirectory, string receiveFile, double progress)
        {
            var subscribeModel = SubscribeCollection.FirstOrDefault(s => s.MonitorIP == monitorIp && s.MonitorAlias == monitorAlias && s.AcceptDirectory == acceptDirectory);

            if (subscribeModel == null)
            {
                return;
            }
            subscribeModel.AcceptFileName    = receiveFile;
            subscribeModel.AcceptFilePercent = progress;
        }
Beispiel #6
0
        private void ExeucteChangeSubscribeCommand(string oldAcceptDirectory)
        {
            var subscribe    = SubscribeCollection.First(s => s.AcceptDirectory == oldAcceptDirectory);
            var selectedPath = IOHelper.Instance.SelectFloder(@"请选择新的接收路径");

            if (!string.IsNullOrEmpty(selectedPath) && selectedPath != oldAcceptDirectory)
            {
                subscribe.AcceptDirectory = selectedPath;
                ConfigHelper.Instance.SaveSettings();
            }
        }
Beispiel #7
0
        public void RemoveAcceptSettings(string monitorIP, string monitorAlias)
        {
            var accepts = SubscribeCollection.Where(s => s.MonitorIP == monitorIP && s.MonitorAlias == monitorAlias).ToList();

            App.Current.Dispatcher.BeginInvoke(new Action(() =>
            {
                foreach (var accept in accepts)
                {
                    SubscribeCollection.Remove(accept);
                }
            }));
            ConfigHelper.Instance.SaveSettings();
        }
Beispiel #8
0
        private void NotifyOnlineOffline(bool online = true)
        {
            var collection = SubscribeCollection.Select(s => string.Format("{0}:{1}|{2}", s.MonitorIP, s.MonitorListenPort, s.MonitorAlias)).ToList().Distinct();

            foreach (var str in collection)
            {
                string[] strArray = str.Split(new char[] { '|' });
                if (strArray.Length != 2)
                {
                    continue;
                }
                string monitorIP    = strArray[0];
                string monitorAlias = strArray[1];
                SynchronousSocketManager.Instance.SendOnlineOfflineInfo(UtilHelper.Instance.GetIPEndPoint(monitorIP), monitorAlias, online);
            }
        }
Beispiel #9
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);
                }
            }
        }