예제 #1
0
        /// <summary>
        /// Delete the project.  This will remove the project and
        /// the project's view model.
        /// </summary>
        /// <param name="projectVM">Project to remove.</param>
        public void DeleteProject(ProjectListItemViewModel projectVM)
        {
            if (projectVM != null)
            {
                string dir     = projectVM.ProjectFolderPath;
                string prjName = projectVM.ProjectName;

                // Unselect the project VM
                if (_SelectedProjectVM == projectVM)
                {
                    _pm.SelectedProject.Dispose();
                    SelectedProjectVM.IsSelected = false;
                    SelectedProjectVM.Dispose();
                    SelectedProjectVM = null;
                }

                // Delete the project from the database
                _pm.RemoveProject(projectVM.ProjectName);

                System.Windows.Application.Current.Dispatcher.BeginInvoke(new System.Action(() =>
                {
                    // Dispose of the VM
                    projectVM.Dispose();

                    var tempPrjList = new ReactiveList <ProjectListItemViewModel>(ProjectList);
                    tempPrjList.Remove(projectVM);

                    ProjectList = tempPrjList;
                    this.NotifyOfPropertyChange(() => this.ProjectList);

                    // Delete the selected project from the list
                    //_ProjectList.Remove(projectVM);
                }));


                // Prompt to delete the folder content also
                this.PromptToPermenatelyDelete(dir, prjName);
            }
        }