public ReceivePage(ToAccept request) { InitializeComponent(); this.Request = request; this.Settings = Settings.Instance; //if (request.TasktoAccept.Info.Type == FileInfo.FType.DIRECTORY) // TaskType = "directory"; //else TaskType = "file"; Peer p = null; if ((p = HelloProtocol.PeersList.Instance.get(request.TasktoAccept.Sender)) == null) { p = new Peer(request.TasktoAccept.Sender, request.TasktoAccept.SenderName, "none"); } Sender = new ListedPeer(p); Infos = new List <DisplayedFileInfo>(); foreach (FileInfo info in request.TasktoAccept.Info) { Infos.Add(new DisplayedFileInfo(info)); } DataContext = this; }
protected FileShareDataContext() { Me = new ListedPeer(Settings.Instance.LocalPeer); PeersList.Instance.PeerInserted += (Peer inserted) => { App.Current.Dispatcher.Invoke((Action) delegate { peers.Add(new ListedPeer(inserted)); }); }; PeersList.Instance.PeerRemoved += (Peer removed) => { foreach (ListedPeer p in peers) { if (p.Peer.Id == removed.Id) { App.Current.Dispatcher.Invoke((Action) delegate { peers.Remove(p); }); break; } } }; JobsList.Sending.JobAdded += (Job job) => { ListedJob listedItem = new ListedJob(job); App.Current.Dispatcher.Invoke((Action) delegate { sendingJobs.Add(listedItem); }); ConfigureState(listedItem); // Adapt view to the currest state of the job job.PropertyChanged += (object sender, PropertyChangedEventArgs args) => { ConfigureState(listedItem); }; }; //JobsList.Sending.JobRemoved += (Job removedJob) => { // foreach (ListedJob listItem in sendingJobs) // if (listItem.Job.Id == removedJob.Id) { // ConfigureState(listItem); // //System.Threading.Thread.Sleep(5000); // //App.Current.Dispatcher.Invoke((Action)delegate { // // sendingJobs.Remove(listItem); // //}); // break; // } //}; JobsList.Receiving.JobAdded += (Job job) => { ListedJob listedItem = new ListedJob(job); App.Current.Dispatcher.Invoke((Action) delegate { receivingJobs.Add(listedItem); }); ConfigureState(listedItem); // Adapt view to the currest state of the job job.PropertyChanged += (object sender, PropertyChangedEventArgs args) => { ConfigureState(listedItem); }; }; //JobsList.Receiving.JobRemoved += (Job removedJob) => { // foreach (ListedJob listItem in receivingJobs) // if (listItem.Job.Id == removedJob.Id) { // ConfigureState(listItem); // //System.Threading.Thread.Sleep(5000); // //App.Current.Dispatcher.Invoke((Action)delegate { // // receivingJobs.Remove(listItem); // //}); // break; // } //}; peers = new ObservableCollection <ListedPeer>(); foreach (Peer p in PeersList.Instance.Peers) { peers.Add(new ListedPeer(p)); } receivingJobs = new ObservableCollection <ListedJob>(); foreach (Job j in JobsList.Receiving.Jobs) { receivingJobs.Add(new ListedJob(j)); } sendingJobs = new ObservableCollection <ListedJob>(); foreach (Job j in JobsList.Sending.Jobs) { sendingJobs.Add(new ListedJob(j)); } }