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