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; } }