예제 #1
0
        private static void SwitchActions(Form1 form, String action, String value, String executablePath, Control updateTextBox, WebClient webClient, String culture)
        {
            String[] separator = { "!" };
            String[] valueSplit;
            bool     wasReadOnly;
            String   filename;
            String   repository = ProxyUtil.GetRepository();

            switch (action)
            {
            case "INS_FILE":
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("INS_FILE", className, culture), value);
                webClient.DownloadFile(repository + "/dtpad-repository/" + value, Path.Combine(executablePath, value));
                FileUtil.SetFilePermissions(Path.Combine(executablePath, value));
                break;

            case "INS_KEY":
                valueSplit         = value.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("INS_KEY", className, culture), valueSplit[0]);
                ConfigUtil.InsertParameter(valueSplit[0], valueSplit[1], executablePath);
                break;

            case "INS_DIR":
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("INS_DIR", className, culture), value);
                Directory.CreateDirectory(Path.Combine(executablePath, value));
                FileUtil.SetDirPermissions(Path.Combine(executablePath, value));
                break;

            case "UPD_FILE":
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("UPD_FILE", className, culture), value);
                filename           = Path.Combine(executablePath, value);
                wasReadOnly        = BeginReadOnlyCheck(filename);
                webClient.DownloadFile(repository + "/dtpad-repository/" + value, Path.Combine(executablePath, value));
                EndReadOnlyCheck(filename, wasReadOnly);
                FileUtil.SetFilePermissions(Path.Combine(executablePath, value));
                break;

            case "UPD_KEY":
                valueSplit = value.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                String parameterValue = String.Empty;
                if (valueSplit.Length > 1)
                {
                    parameterValue = valueSplit[1];
                }
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("UPD_KEY", className, culture), valueSplit[0]);
                ConfigUtil.UpdateParameter(valueSplit[0], parameterValue, executablePath);
                break;

            case "DEL_FILE":
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("DEL_FILE", className, culture), value);
                filename           = Path.Combine(executablePath, value);
                BeginReadOnlyCheck(filename);
                File.Delete(filename);
                break;

            case "DEL_KEY":
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("DEL_KEY", className, culture), value);
                ConfigUtil.DeleteParameter(value, executablePath);
                break;

            case "REN_FILE":
                valueSplit         = value.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("REN_FILE", className, culture), valueSplit[0], valueSplit[1]);
                String originalFilename = Path.Combine(executablePath, valueSplit[0]);
                String modifiedFilename = Path.Combine(executablePath, valueSplit[1]);
                wasReadOnly = BeginReadOnlyCheck(originalFilename);
                File.Move(originalFilename, modifiedFilename);
                EndReadOnlyCheck(modifiedFilename, wasReadOnly);
                FileUtil.SetFilePermissions(Path.Combine(executablePath, value));
                break;

            case "REN_KEY":
                valueSplit         = value.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + String.Format(LanguageUtil.GetCurrentLanguageString("REN_KEY", className, culture), valueSplit[0], valueSplit[1]);
                ConfigUtil.RenameParameter(valueSplit[0], valueSplit[1], executablePath);
                break;

            case "SHW_MSG":
                String message = LanguageUtil.GetCurrentLanguageString(String.Format("SHW_MSG_{0}", value), className, culture);
                updateTextBox.Text = updateTextBox.Text + Environment.NewLine + message;
                WindowManager.ShowAlertProgramBox(form, message, culture);
                break;
            }
        }