Beispiel #1
0
        private FilesRecord SendFilesToSubscribe(object obj)
        {
            FilesRecord record = obj as FilesRecord;

            if (record == null || record.SubscribeInfo == null || record.IncrementFiles == null)
            {
                return(null);
            }
            string        monitorAlias     = record.MonitorAlias;
            string        monitorDirectory = record.MonitorDirectory;
            List <string> monitorIncrement = record.IncrementFiles;

            record.IncompleteSendFiles = monitorIncrement;
            SubscribeInfoModel info           = record.SubscribeInfo;
            string             remoteEndPoint = info.SubscribeIP;

            SendContext context = new SendContext(@"$BTF#");

            object[] param = new object[3];
            param[0] = monitorAlias;
            param[1] = monitorDirectory;
            param[2] = monitorIncrement;
            IPEndPoint remote   = UtilHelper.Instance.GetIPEndPoint(remoteEndPoint);
            object     feedback = context.ConnectToRemote(remote, param);

            List <string> sendedFiles = feedback as List <string>;

            if (sendedFiles != null)
            {
                List <string> unsendedFiles = monitorIncrement.Except(sendedFiles).ToList();
                record.IncompleteSendFiles = unsendedFiles;
            }
            return(record);
        }
Beispiel #2
0
        public void CompleteMonitorSetting(string monitorAlias, string subscribeIP)
        {
            var monitor = MonitorCollection.FirstOrDefault(m => m.MonitorAlias == monitorAlias);

            if (monitor == null)
            {
                return;
            }
            if (monitor.SubscribeInfos == null)
            {
                monitor.SubscribeInfos = new ObservableCollection <SubscribeInfoModel>();
            }
            if (monitor.SubscribeInfos.Where(s => s.SubscribeIP == subscribeIP).Count() > 0)
            {
                return;
            }
            SubscribeInfoModel infoModel = new SubscribeInfoModel()
            {
                SubscribeIP = subscribeIP, CanConnect = true
            };
            var collection = new ObservableCollection <SubscribeInfoModel>();

            foreach (var subscribe in monitor.SubscribeInfos)
            {
                collection.Add(subscribe);
            }
            collection.Add(infoModel);
            monitor.SubscribeInfos = collection;
            ConfigHelper.Instance.SaveSettings();
        }