SIL.FieldWorks.UnicodeCharEditor.PUAInstaller.CheckForIcuLocked C# (CSharp) Méthode

CheckForIcuLocked() static private méthode

Check for locked ICU files and return
static private CheckForIcuLocked ( string inputLocale, bool runSilent, CallingID caller ) : bool
inputLocale string the locale being modified. May just be the ICULocale name, or /// may be a fully specified path name to the language xml file, or null.
runSilent bool Boolean set to true if we don't want to ask the user for info.
caller CallingID
Résultat bool
		internal static bool CheckForIcuLocked(string inputLocale, bool runSilent, CallingID caller)
		{
			bool fOk;
			string locale = null;
			if (inputLocale != null)
			{
				int icuName = inputLocale.LastIndexOf(Path.DirectorySeparatorChar);
				string icuPortion = inputLocale.Substring(icuName + 1);
				int iLocale = icuPortion.LastIndexOf(".");
				if (iLocale < 0)
					iLocale = icuPortion.Length;
				locale = icuPortion.Substring(0, iLocale);
			}
			do
			{
				fOk = true;
				var lockedFile = Icu.CheckIcuLocked(locale);
				if (lockedFile != null)
				{
					LogFile.AddLine(String.Format(" File Access Error: {0}. Asking user to Retry or Cancel. Caller={1}", lockedFile, caller));
					if (runSilent)
					{
						LogFile.AddLine(" Silently cancelled operation.");
						Console.WriteLine(@"Silently cancelled operation.");
						return false;
					}
					string message;	// for now
					var nl = Environment.NewLine;
					switch (caller)
					{
						case CallingID.CID_RESTORE:
							message = String.Format(Properties.Resources.ksCloseFieldWorksForRestore,
								lockedFile);
							break;
						case CallingID.CID_NEW:
							message = String.Format(Properties.Resources.ksCloseFieldWorksToInstall,
								lockedFile);
							break;
						default:
							message = String.Format(Properties.Resources.ksCannotCompleteChanges,
								lockedFile);
							break;
					}
					message = message + nl + nl + "Close Clipboard Converter" + nl + nl + "Close This FW App";

					var caption = Properties.Resources.ksMsgHeader;
					const MessageBoxButtons buttons = MessageBoxButtons.RetryCancel;
					const MessageBoxIcon icon = MessageBoxIcon.Exclamation;
					const MessageBoxDefaultButton defButton = MessageBoxDefaultButton.Button1;
					var result = MessageBox.Show(message, caption, buttons, icon, defButton);
					if (result == DialogResult.Cancel)
					{
						LogFile.AddLine(" User cancelled operation.");
						Console.WriteLine(@"User cancelled operation.");
						return false;
					}
					fOk = false;
				}
			} while (fOk == false);
			return true;
		}