// Present the user with a detailed list of installable components. // The components marked if they are schedule for installation. // The use can select/unselect individual files for installation. bool GetApprovalForInstallation( string targetRepository ) { InstallationPreviewDialog preview = new InstallationPreviewDialog(); preview.TargetRepository = targetRepository; SortedList<string,object> candidateSources = new SortedList<string, object>(); // Build the set of available components, marked if they are // scheduled for installation. foreach( string type in m_Candidates.Keys ) { List<InstallationCandidate> candidateList = m_Candidates[ type ]; foreach( InstallationCandidate candidate in candidateList ) { if( ! candidateSources.ContainsKey( candidate.Source.Name ) ) { candidateSources.Add( candidate.Source.Name, null ); preview.Add( candidate.Destination, IsTypeEnabled( type ) ); } } } return BuildApprovedList( preview ); }
private bool BuildApprovedList( InstallationPreviewDialog preview ) { m_ApprovedForInstallation = new Dictionary<string, object>(); if( ConfirmInstallation ) { if( DialogResult.OK != preview.ShowDialog() ) { return false; } } foreach( string approvedItem in preview.CheckedItems ) { m_ApprovedForInstallation.Add( approvedItem, null ); } return true; }