private DialogResult FieldClearDialog()
 {
     using (var dialog = new SolutionPackagerDialog(Resources.FIELD_CLEAR_MESSAGE,
                                                    Resources.FIELD_CLEAR_TITLE,
                                                    new SolutionPackagerDialog.ButtonProperties()
     {
         Text = Resources.BTN_NO, Result = DialogResult.No
     },
                                                    new SolutionPackagerDialog.ButtonProperties()
     {
         Text = Resources.BTN_YES, Result = DialogResult.Yes
     }))
     {
         return(dialog.ShowDialog(this));
     }
 }
        private void ExtractSolutionProgress(ProgressChangedEventArgs args)
        {
            switch (args.ProgressPercentage)
            {
            case 0:
            {
                var @params = args.UserState as Parameters ?? throw new ArgumentNullException(nameof(args.UserState));

                txtOutput.Text           = "";
                txtOutput.SelectionStart = 0;
                txtOutput.SelectionFont  = new Font(txtOutput.Font.FontFamily, 12, FontStyle.Underline);
                txtOutput.AppendText(Resources.LAUNCH_COMMAND_LINE + Environment.NewLine);
                txtOutput.SelectionStart = txtOutput.TextLength;
                txtOutput.SelectionFont  = new Font(txtOutput.Font, FontStyle.Bold | FontStyle.Italic);
                txtOutput.AppendText("SolutionPackager.exe");
                AppendArgument("Action", @params.Action);
                AppendArgument("zipfile", $"\"{@params.ZipFile}\"");
                AppendArgument("folder", $"\"{@params.OutputFolder}\"");
                if (!string.IsNullOrEmpty(@params.PackageType))
                {
                    AppendArgument("packagetype", @params.PackageType);
                }
                if ([email protected] && @params.Action != "Pack")
                {
                    AppendArgument("allowWrite", "No");
                }
                if (@params.AllowDelete.HasValue)
                {
                    AppendArgument("allowDelete", @params.AllowDelete.Value ? "Yes" : "No");
                }
                if (@params.Clobber)
                {
                    AppendArgument("clobber");
                }

                if (!string.IsNullOrEmpty(@params.ErrorLevel))
                {
                    AppendArgument("errorlevel", @params.ErrorLevel);
                }

                if (!string.IsNullOrEmpty(@params.MapFile))
                {
                    AppendArgument("map", $"\"{@params.MapFile}\"");
                }

                if (@params.NoLogo)
                {
                    AppendArgument("nologo");
                }
                if (!string.IsNullOrEmpty(@params.LogFile))
                {
                    AppendArgument("log", $"\"{@params.LogFile}\"");
                }

                if (!string.IsNullOrEmpty(@params.Arguments))
                {
                    AppendArgument("", $"\"{@params.Arguments}\"");
                }

                if (!string.IsNullOrEmpty(@params.SourceLocale))
                {
                    AppendArgument("sourceLoc", @params.SourceLocale);
                }

                if (@params.Localize)
                {
                    AppendArgument("localize");
                }
                txtOutput.AppendText(Environment.NewLine + Environment.NewLine);
                txtOutput.SelectionStart = txtOutput.TextLength;
                txtOutput.SelectionFont  = new Font(txtOutput.Font.FontFamily, 12, FontStyle.Underline);
                txtOutput.AppendText(Resources.PROGRAM_OUTPUT + Environment.NewLine);
                txtOutput.SelectionStart = txtOutput.TextLength;
                txtOutput.SelectionFont  = txtOutput.Font;
            }
            break;

            case 10:
            case 30:
                txtOutput.AppendText(Environment.NewLine);
                break;

            case 20:
            case 50:
                txtOutput.AppendText(args.UserState as string);
                break;

            case 40:
            case 60:
                txtOutput.SelectionStart = txtOutput.TextLength;
                txtOutput.SelectionColor = args.ProgressPercentage == 40 ? Color.Red : txtOutput.ForeColor;
                txtOutput.AppendText(Environment.NewLine);
                break;

            case 70:
                txtOutput.AppendText(Environment.NewLine);
                break;

            case 21:
            {
                var          @params = args.UserState as Parameters;
                DialogResult dialogResponse;
                using (var dialog = new SolutionPackagerDialog())
                {
                    dialogResponse = dialog.ShowDialog(solutionPackagerControl);
                }
                var response = dialogResponse == DialogResult.Yes ? "Yes" : (dialogResponse == DialogResult.Retry ? "List" : "No");
                @params.StandardInput.WriteLine(response);
                txtOutput.AppendText(" " + response + Environment.NewLine);
            }
            break;
            }
        }