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