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); }
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(); }