/// <summary> /// Returns the "ArchivePath" from the given backup set profile. /// </summary> public string sArchivePath(tvProfile aoBackupSetProfile) { string lsArchivePath = moProfile.sValue("-ArchivePath", Path.Combine(Path.GetPathRoot(Environment.GetFolderPath( Environment.SpecialFolder.System)), "Archive")); // Don't create a default "-ArchivePath" in the backup set (that's // what "ContainsKey" prevents). That way the global "-ArchivePath" // will stay in force unless specifically overridden. if ( null != aoBackupSetProfile && aoBackupSetProfile.ContainsKey("-ArchivePath") ) lsArchivePath = aoBackupSetProfile["-ArchivePath"].ToString(); return lsArchivePath; }
/// <summary> /// Returns the "BackupFileSpec" from the given backup set profile. /// </summary> public string sBackupFileSpec(tvProfile aoBackupSetProfile) { string lsBackupFileSpec = moProfile.sValue("-BackupFileSpec", "*"); // Don't create a default "-BackupFileSpec" in the backup set (that's // what "ContainsKey" prevents). That way the global "-BackupFileSpec" // will stay in force unless specifically overridden. if ( null != aoBackupSetProfile && aoBackupSetProfile.ContainsKey("-BackupFileSpec") ) lsBackupFileSpec = aoBackupSetProfile["-BackupFileSpec"].ToString(); return lsBackupFileSpec; }
public static tvMessageBoxResults Show( Window aoWindow , string asMessageText , string asMessageCaption , tvMessageBoxButtons aeTvMessageBoxButtons , tvMessageBoxIcons aeTvMessageBoxIcon , bool abShowModeless , tvMessageBoxCheckBoxTypes aeTvMessageBoxCheckBoxType , tvProfile aoProfile , string asProfilePromptKey , tvMessageBoxResults aeTvMessageBoxResultsOverride ) { tvMessageBoxResults liTvMessageBoxResult = tvMessageBoxResults.None; string lsPromptAnswerKey = null; bool lbUseCheckBox = tvMessageBoxCheckBoxTypes.None != aeTvMessageBoxCheckBoxType; if ( lbUseCheckBox ) { // Insert the prompt key prefix if it's not already there. A common prefix // is necessary to allow for the removal of all prompt keys as needed. if ( !asProfilePromptKey.StartsWith(msProfilePromptKeyPrefix) ) { // Strip leading hyphen. if ( asProfilePromptKey.StartsWith("-") ) asProfilePromptKey = asProfilePromptKey.Substring(1, asProfilePromptKey.Length - 1); // Insert prefix. asProfilePromptKey = msProfilePromptKeyPrefix + asProfilePromptKey; } // Make the answer key from the prompt key and the prompt key suffix. lsPromptAnswerKey = asProfilePromptKey + msProfilePromptKeySuffix; // Only the first display of a modeless dialog can contain a checkbox. // Why? Because the first prompt is not modeless. That's the only way // to capture the checkbox value. BTW, "lbUseCheckBox" is reset here // for use outside of this block to avoid the default setting next. if ( abShowModeless ) lbUseCheckBox = !aoProfile.ContainsKey(asProfilePromptKey); if ( !aoProfile.bValue(asProfilePromptKey, false) && aoProfile.ContainsKey(lsPromptAnswerKey) ) { // Do not prompt. Return the previous stored answer instead. return (tvMessageBoxResults)aoProfile.iValue( lsPromptAnswerKey, (int)tvMessageBoxResults.None); } } if ( null == asMessageCaption ) { // No caption provided. Let's try to get one another way. if ( null != aoWindow ) // Try window title first. asMessageCaption = aoWindow.Title; else if ( null != Application.Current ) // Next try for application name. asMessageCaption = Application.Current.MainWindow.Name; } if ( null != aoWindow ) aoWindow.Cursor = null; // Turn off wait cursor in parent window. tvMessageBox loMsgBox = new tvMessageBox(); loMsgBox.MessageText.Text = asMessageText; // Use some parent window attributes, if available. if ( null != aoWindow ) { // Use the parent window's icon. loMsgBox.Icon = aoWindow.Icon; // Use the given asMessageCaption as the MsgBox title, if not null. // Otherwise use the parent window title with an added question mark. loMsgBox.Title = null != asMessageCaption ? asMessageCaption : aoWindow.Title + "?"; } // Display the MsgBox header / title (ie. the caption), if provided. if ( null != asMessageCaption ) { loMsgBox.MessageTitle.Content = asMessageCaption; loMsgBox.MessageTitle.Visibility = Visibility.Visible; } loMsgBox.SelectButtons(aeTvMessageBoxButtons); loMsgBox.SelectIcon(aeTvMessageBoxIcon); if ( lbUseCheckBox ) { switch (aeTvMessageBoxCheckBoxType) { case tvMessageBoxCheckBoxTypes.DontAsk: loMsgBox.chkDontAsk.Visibility = Visibility.Visible; break; case tvMessageBoxCheckBoxTypes.SkipThis: loMsgBox.chkSkipThis.Visibility = Visibility.Visible; break; } } if ( !abShowModeless ) { loMsgBox.ShowDialog(); } else { // It can only be modeless after the checkbox has been stored. if ( lbUseCheckBox ) loMsgBox.ShowDialog(); else loMsgBox.Show(); } if ( lbUseCheckBox ) { bool lbCheckBoxValue = false; switch (aeTvMessageBoxCheckBoxType) { case tvMessageBoxCheckBoxTypes.DontAsk: lbCheckBoxValue = (bool)loMsgBox.chkDontAsk.IsChecked; break; case tvMessageBoxCheckBoxTypes.SkipThis: lbCheckBoxValue = (bool)loMsgBox.chkSkipThis.IsChecked; break; } // Use the answer override whenever not "none". This value is // necessary for certain stored answers that don't make sense // in a given context (eg. both "skip this" and "cancel" selected). if ( tvMessageBoxResults.None == aeTvMessageBoxResultsOverride ) aeTvMessageBoxResultsOverride = loMsgBox.eTvMessageBoxResult; // Reverse the boolean. "Don't ask" or "Skip this" means "Don't prompt". aoProfile[asProfilePromptKey] = !lbCheckBoxValue; aoProfile[lsPromptAnswerKey] = (int)aeTvMessageBoxResultsOverride; aoProfile.Save(); } liTvMessageBoxResult = loMsgBox.eTvMessageBoxResult; return liTvMessageBoxResult; }