Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }