/// <summary> /// This Method implements write records in file to csv-format. /// </summary> /// <param name="record">It is record from our list.</param> public void Write(FileCabinetApp.FileCabinetRecord record) { if (record == null) { throw new ArgumentNullException(nameof(record)); } var recordString = new StringBuilder(); recordString.Append($"{record.Id},"); recordString.Append($"{record.FirstName},"); recordString.Append($"{record.LastName},"); recordString.Append($"{record.DateOfBirth.ToString("yyyy-MMM-dd", CultureInfo.InvariantCulture)},"); recordString.Append($"{record.CabinetNumber},"); recordString.Append($"{record.Salary},"); recordString.Append($"{record.Category}"); this.writer.WriteLine(recordString.ToString(), Encoding.Default); }
static void Main(string[] args) { const int parameterIndex = 0; const int parameterValue = 1; const string outputTypeName = "--output-type"; const string outputPathName = "--output"; const string recordsAmountName = "--records-amount"; const string startIdName = "--start-id"; const string outputTypeNameShort = "-t"; const string outputPathNameShort = "-o"; const string recordsAmountNameShort = "-a"; const string startIdNameShort = "-i"; if (args[0].Contains('=')) { foreach (var item in args) { string[] parameters = item.Split('=', 2); if (parameters[parameterIndex].Equals(outputTypeName)) { if (parameters[parameterValue].Equals(OutputTypeCsv)) { isCsv = true; } if (parameters[parameterValue].Equals(OutputTypeXml)) { isXml = true; } } if (parameters[parameterIndex].Equals(outputPathName)) { if (isCsv) { path = parameters[parameterValue]; } else if (isXml) { path = parameters[parameterValue]; } else { Console.WriteLine("Incorrect Format!"); return; } } if (parameters[parameterIndex].Equals(recordsAmountName)) { amountRecords = Convert.ToInt32(parameters[parameterValue]); } if (parameters[parameterIndex].Equals(startIdName)) { startId = Convert.ToInt32(parameters[parameterValue]); } } } else { foreach (var item in args) { if (args[TypeParameterIndex].Equals(outputTypeNameShort)) { if (args[TypeParameterValue].Equals(OutputTypeCsv)) { isCsv = true; } if (args[TypeParameterValue].Equals(OutputTypeXml)) { isXml = true; } } if (args[OutputParameterIndex].Equals(outputPathNameShort)) { if (isCsv) { path = args[OutputParameterValue]; } else if (isXml) { path = args[OutputParameterValue]; } else { Console.WriteLine("Incorrect Format!"); return; } } if (args[AmountParameterIndex].Equals(recordsAmountNameShort)) { amountRecords = Convert.ToInt32(args[AmountParameterValue]); } if (args[StartIdParameterIndex].Equals(startIdNameShort)) { startId = Convert.ToInt32(args[StartIdParameterValue]); } } } var records = new FileCabinetApp.FileCabinetRecord[amountRecords]; var list = new List <FileCabinetApp.FileCabinetRecord>(amountRecords); for (int i = 0; i < amountRecords; i++) { var record = new FileCabinetApp.FileCabinetRecord { Id = startId, FirstName = GeneratorFirstName(), LastName = GeneratorLastName(), DateOfBirth = GeneratorDateOfBirth(), CabinetNumber = GeneratorCabinetNumber(), Salary = GeneratorSalary(), Category = GeneratorCategory(), }; startId++; records[i] = record; list.Add(record); } StreamWriter streamWriter; bool rewrite = false; if (File.Exists(path)) { Console.Write("File is exist - rewrite " + path.Remove(0, 3) + "? [Y/n]"); string result = Console.ReadLine(); if (result == "Y") { streamWriter = new StreamWriter(path, rewrite); } else { return; } } else { streamWriter = new StreamWriter(path); } if (isCsv) { SaveToCsv(streamWriter, records); } if (isXml) { SaveToXml(streamWriter, list); } streamWriter.Close(); Console.WriteLine(amountRecords + " records were written to " + path); Console.ReadLine(); }