public static void SerialNumberComparison(String missingFileName, String outputFileName) { ExtendedCSV extended = new ExtendedCSV( new FileStream(missingFileName, FileMode.Open), new List <string>() { "Serial No" }); ExtendedCSV other = new ExtendedCSV( new FileStream("/Users/jcox/Documents/employee_laptop_serials.csv", FileMode.Open), new List <string>() { "Serial No" }) { ConflictRule = new PickTheFirstConflictRule() }; other.NormalizeColumns(new SerialNumberNormalizationRule() { Capitalize = true }, new List <String>() { "Serial No" }); other = new ExtendedCSV(other.FlattenRows(), new List <string>() { "Serial No" }); other.Save("/Users/jcox/Documents/employee_laptop_serials.csv"); ExtendedCSV output = new ExtendedCSV(extended.PullRowsMatchingPrimaryKeysWith(other), new List <String>() { "Serial No" }); output.GetDataColumnsFrom(other, new List <String>() { "First", "Last" }); output.Save(outputFileName); }
public static void Flatten() { List <String> files = Directory.EnumerateFiles(String.Format("/Users/{0}/Documents/toFlatten/", Environment.UserName)).ToList(); if (!Directory.Exists(String.Format("/Users/{0}/Documents/flattened", Environment.UserName))) { Directory.CreateDirectory(String.Format("/Users/{0}/Documents/flattened", Environment.UserName)); } List <String> uniqueFields = new List <string>(); if (File.Exists(String.Format("/Users/{0}/Documents/toFlatten/.flatten.conf", Environment.UserName))) { StreamReader reader = new StreamReader( new FileStream( String.Format("/Users/{0}/Documents/toFlatten/.flatten.conf", Environment.UserName), FileMode.Open)); String fields = reader.ReadLine(); uniqueFields.AddRange(fields.Split('\t')); } else { // ask the user. Console.WriteLine("What are the unique fields? [Enter one at a time. '*' to End."); String field = ""; while (true) { Console.Write(">> "); field = Console.ReadLine(); if (field.Equals("*")) { break; } else { uniqueFields.Add(field); } } } foreach (string fileName in files) { if (!fileName.EndsWith(".csv", StringComparison.CurrentCultureIgnoreCase)) { continue; } Console.WriteLine(fileName); FileStream fileStream = new FileStream(fileName, FileMode.Open); ExtendedCSV extendedCSV = new ExtendedCSV(fileStream, uniqueFields) { ConflictRule = new YesBeatsNoConflictRule() { NextRule = new UserResolveConflictRule() } }; CSV output = extendedCSV.FlattenRows(); string outfilename = fileName.Replace("toFlatten", "flattened"); output.Save(outfilename); Console.WriteLine("Flattened: {0}", outfilename); } Console.WriteLine("Done!"); Console.ReadKey(); }