private void ImportCarGeneratorsCSV(string path) { // Read car generators from CSV CarGenerator[] imported; try { imported = CarGeneratorCsvHelper.Read(path); } catch (IOException ex) { ShowErrorDialog(ex.Message); StatusText = Strings.StatusMessageImportUnsuccessful; return; } catch (InvalidDataException ex) { ShowErrorDialog(ex.Message); StatusText = Strings.StatusMessageImportUnsuccessful; return; } // Ensure number of car generators equals the game's expected amount int underBy = CarGeneratorsData.NumberOfCarGenerators - imported.Length; Array.Resize(ref imported, CarGeneratorsData.NumberOfCarGenerators); if (underBy > 0) { // Fill padded values with default car generator for (int i = 0; i < underBy; i++) { imported[imported.Length - i - 1] = new CarGenerator(); } } else if (underBy < 0) { ShowImportCountExceededDialog(Math.Abs(underBy)); } // Replace car generators CurrentSaveData.CarGenerators.CarGeneratorsArray = imported; ShowImportSuccessDialog(); // Refresh table ClearCarGeneratorsList(); PopulateCarGeneratorsList(); OnResetRowOrderRequested(); // Update metadata UpdateNumberOfCarGenerators(); // Update status StatusText = string.Format(Strings.StatusMessageImportSuccessful, path); IsFileModified = true; }
private void ExportCarGeneratorsCSV(string path) { CarGenerator[] data = CurrentSaveData.CarGenerators.CarGeneratorsArray; try { CarGeneratorCsvHelper.Write(data, path); } catch (IOException ex) { ShowErrorDialog(ex.Message); StatusText = Strings.StatusMessageExportUnsuccessful; return; } catch (InvalidDataException ex) { ShowErrorDialog(ex.Message); StatusText = Strings.StatusMessageExportUnsuccessful; return; } ShowExportSuccessDialog(); StatusText = string.Format(Strings.StatusMessageExportSuccessful, path); }