private void ListenForMessages()
 {
     _Messenger.Register <ProjectViewModel>(Messages.RequestDeleteProject, p => DeleteProject(p));
     _Messenger.Register <ProjectViewModel>(Messages.SavedProject, p => SaveProjectToList(p));
     _Messenger.Register <ProjectViewModel>(Messages.AddedProject, p => ManagedProjects.Add(p));
     _Messenger.Register <ProjectViewModel>(Messages.AssignedProjectSelected, p => SelectedProject = null);
     _Messenger.Register <ProjectViewModel>(Messages.DeletedProject, p => RemoveProjectLeft(p));
 }
        private void SaveProjectToList(ProjectViewModel project)
        {
            var proj = ManagedProjects.Where(x => x.Id == project.Id).SingleOrDefault();

            int index = ManagedProjects.IndexOf(proj);

            ManagedProjects.RemoveAt(index);
            ManagedProjects.Insert(index, project);
        }
        private void RemoveProjectLeft(ProjectViewModel proj)
        {
            ProjectViewModel project = ManagedProjects.Where(p => p.Id == proj.Id).SingleOrDefault();

            if (project != null)
            {
                ManagedProjects.Remove(project);
            }
        }
        private void DeleteProject(ProjectViewModel project)
        {
            try
            {
                _Service.DeleteProject(project.ToProjectModel());
                ManagedProjects.Remove(project);

                _Notifier.AddNotification(new Notification
                {
                    ImageUrl = Notification.ICON_DELETE,
                    Title    = "Project Deleted",
                    Message  = "The project " + project.Name + " has been deleted."
                });


                _Messenger.NotifyColleagues(Messages.DeletedProject, project);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }