private void RunBackgroundWorker() { if (RTB_Instructions.Lines.Any(line => line.Length == 0)) { WinFormsUtil.Error("Invalid instruction detected."); return; } var sets = StringInstructionSet.GetBatchSets(RTB_Instructions.Lines).ToArray(); if (sets.Any(s => s.Filters.Any(z => string.IsNullOrWhiteSpace(z.PropertyValue)))) { WinFormsUtil.Error("Filter empty."); return; } if (sets.Any(z => z.Instructions.Count == 0)) { WinFormsUtil.Error("No instructions."); return; } var emptyVal = sets.SelectMany(s => s.Instructions.Where(z => string.IsNullOrWhiteSpace(z.PropertyValue))).ToArray(); if (emptyVal.Length > 0) { string props = string.Join(", ", emptyVal.Select(z => z.PropertyName)); string invalid = "Property empty." + Environment.NewLine + props; if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, invalid, "Continue?")) { return; } } RTB_Instructions.Enabled = B_Go.Enabled = false; RunBatchEdit(sets); }
public RegenSet(ICollection <string> lines, int format, Shiny shiny = Shiny.Never) { Extra = new RegenSetting { ShinyType = shiny }; HasExtraSettings = Extra.SetRegenSettings(lines); HasTrainerSettings = RegenUtil.GetTrainerInfo(lines, format, out var tr); Trainer = tr; Batch = new StringInstructionSet(lines); }
private void RunBackgroundWorker() { if (RTB_Instructions.Lines.Any(line => line.Length == 0)) { WinFormsUtil.Error(MsgBEInstructionInvalid); return; } var sets = StringInstructionSet.GetBatchSets(RTB_Instructions.Lines).ToArray(); if (sets.Any(s => s.Filters.Any(z => string.IsNullOrWhiteSpace(z.PropertyValue)))) { WinFormsUtil.Error(MsgBEFilterEmpty); return; } if (sets.Any(z => z.Instructions.Count == 0)) { WinFormsUtil.Error(MsgBEInstructionNone); return; } var emptyVal = sets.SelectMany(s => s.Instructions.Where(z => string.IsNullOrWhiteSpace(z.PropertyValue))).ToArray(); if (emptyVal.Length > 0) { string props = string.Join(", ", emptyVal.Select(z => z.PropertyName)); string invalid = MsgBEPropertyEmpty + Environment.NewLine + props; if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, invalid, MsgContinue)) { return; } } string?destPath = null; if (RB_Path.Checked) { WinFormsUtil.Alert(MsgExportFolder, MsgExportFolderAdvice); using var fbd = new FolderBrowserDialog(); var dr = fbd.ShowDialog(); if (dr != DialogResult.OK) { return; } destPath = fbd.SelectedPath; } FLP_RB.Enabled = RTB_Instructions.Enabled = B_Go.Enabled = false; foreach (var set in sets) { BatchEditing.ScreenStrings(set.Filters); BatchEditing.ScreenStrings(set.Instructions); } RunBatchEdit(sets, TB_Folder.Text, destPath); }
private void RunBackgroundWorker() { if (RTB_Instructions.Lines.Any(line => line.Length == 0)) { WinFormsUtil.Error("Line length error in instruction list."); return; } var sets = StringInstructionSet.GetBatchSets(RTB_Instructions.Lines).ToArray(); if (sets.Any(s => s.Filters.Any(z => string.IsNullOrWhiteSpace(z.PropertyValue)))) { WinFormsUtil.Error("Empty Filter Value detected."); return; } if (sets.Any(z => !z.Instructions.Any())) { WinFormsUtil.Error("No instructions defined for a modification set."); return; } var emptyVal = sets.SelectMany(s => s.Instructions.Where(z => string.IsNullOrWhiteSpace(z.PropertyValue))).ToArray(); if (emptyVal.Any()) { string props = string.Join(", ", emptyVal.Select(z => z.PropertyName)); string invalid = $"Empty Property Value{(emptyVal.Length > 1 ? "s" : "")} detected:" + Environment.NewLine + props; if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, invalid, "Continue?")) { return; } } string destPath = null; if (RB_Path.Checked) { WinFormsUtil.Alert("Please select the folder where the files will be saved to.", "This can be the same folder as the source of PKM files."); var fbd = new FolderBrowserDialog(); var dr = fbd.ShowDialog(); if (dr != DialogResult.OK) { return; } destPath = fbd.SelectedPath; } FLP_RB.Enabled = RTB_Instructions.Enabled = B_Go.Enabled = false; foreach (var set in sets) { ScreenStrings(set.Filters); ScreenStrings(set.Instructions); } RunBatchEdit(sets, TB_Folder.Text, destPath); }
public static string GetSummary(StringInstructionSet set) { var result = new List <string>(); foreach (var s in set.Filters) { result.Add($"{(s.Evaluator ? "=" : "!")}{s.PropertyName}={s.PropertyValue}"); } foreach (var s in set.Instructions) { result.Add($".{s.PropertyName}={s.PropertyValue}"); } return(string.Join(Environment.NewLine, result)); }
public static BatchEditor Execute(IList <string> lines, IEnumerable <PKM> data) { var editor = new BatchEditor(); var sets = StringInstructionSet.GetBatchSets(lines).ToArray(); foreach (var pk in data) { foreach (var set in sets) { editor.Process(pk, set.Filters, set.Instructions); } } return(editor); }
private static bool IsValidInstructionSet(List <string> split, out List <StringInstruction> invalid) { invalid = new List <StringInstruction>(); var set = new StringInstructionSet(split); foreach (var s in set.Filters.Concat(set.Instructions)) { var type = BatchEditing.GetPropertyType(s.PropertyName); if (type == null) { invalid.Add(s); } } return(invalid.Count == 0); }