예제 #1
0
 private void AddMissingFields(CsvEntry entry, List <string> missingFieldNames)
 {
     foreach (var missingFieldName in missingFieldNames)
     {
         entry.AddValue(missingFieldName, null, false);
     }
 }
예제 #2
0
        public void TestToString()
        {
            var key1   = "key1";
            var value1 = "10.0";
            var key2   = "key2";
            var value2 = "value2";

            var entry = new CsvEntry();

            entry.AddValue(key1, value1, true);
            entry.AddValue(key2, value2, false);

            var expectedString = "10.0,value2";

            Assert.AreEqual(expectedString, entry.ToString());
        }
예제 #3
0
        public void TestAddDimension()
        {
            var key   = "key";
            var value = "10.0";

            var entry = new CsvEntry();

            entry.AddValue(key, value, true);

            Assert.AreEqual(0, entry.MeasureValues.Count);
            Assert.AreEqual(1, entry.DimensionValues.Count);
            Assert.IsTrue(entry.DimensionValues.ContainsKey(key));
            Assert.AreEqual(value, entry.DimensionValues[key]);
        }
예제 #4
0
        public CsvData ReadFile(string fileName)
        {
            var csvData                = new CsvData();
            var csvEntries             = new List <CsvEntry>();
            var csvReaderConfiguration = new Configuration()
            {
                Delimiter = CSV_DELIMITER
            };

            using (var streamReader = File.OpenText(fileName))
                using (var csvReader = new CsvHelper.CsvReader(streamReader, csvReaderConfiguration))
                {
                    csvReader.Read();
                    csvReader.ReadHeader();
                    var header = csvReader.Context.HeaderRecord;

                    while (csvReader.Read())
                    {
                        var csvEntry = new CsvEntry();

                        foreach (var name in header)
                        {
                            bool isDimension = false;

                            if (dimensionColumns.Contains(name))
                            {
                                isDimension = true;
                            }

                            var value = csvReader.GetField(name);
                            csvEntry.AddValue(name, value, isDimension);
                        }

                        csvEntries.Add(csvEntry);
                    }

                    csvData.FieldNames = header;
                }

            csvData.Entries = csvEntries;
            return(csvData);
        }