public void Run() { TwoDimArray source = TwoDimArrayFactory.Load2da(options.SourceFile); foreach (string patchPath in options.PatchFiles) { Console.WriteLine($"Processing patch: {patchPath}"); TwoDimArray patch = TwoDimArrayFactory.Load2da(patchPath); ProcessPatch(source, patch); Console.WriteLine($"Patch processed: {patchPath}"); } ExportResult(source); }
private void DoAdd(TwoDimArray source, int index, TwoDimArrayEntry entryToAdd) { if (index < source.Entries.Count) { Console.WriteLine($"ADD patch entry at index {index} overwrites an existing value. Use REPLACE if replacement is intentional. Skipping..."); return; } if (index > source.Entries.Count) { TwoDimArrayEntry padding = TwoDimArrayFactory.CreateEmptyEntry(source.Entries[0].Values.Keys); for (int i = source.Entries.Count - 1; i < index; i++) { source.Entries.Add(padding); } } foreach (string column in PatchColumns) { entryToAdd.Values.Remove(column); } source.Entries.Add(entryToAdd); }