public void SumChecker() { const string startpath = @"D:\LPGUnitTest\JsonCalculatorTest.EndToEndTest\results"; var di = new DirectoryInfo(startpath); var subdirs = di.GetDirectories(); foreach (DirectoryInfo subdir in subdirs) { var resultDirs = subdir.GetDirectories("Results"); if (resultDirs.Length != 1) { Logger.Info("No Results found in " + subdir.FullName); continue; } var resultFiles = resultDirs[0].GetFiles("*.csv"); List <CSVProfileReader> csvs = new List <CSVProfileReader>(); foreach (FileInfo info in resultFiles) { csvs.Add(CSVProfileReader.ReadFile(info.FullName)); } var loadTypes = csvs.Select(x => x.Loadtype ?? throw new LPGException("lt was null")).Distinct().ToList(); foreach (string loadType in loadTypes) { var filtered = csvs.Where(x => x.Loadtype == loadType).ToList(); foreach (var reader in filtered) { Logger.Info(reader.Filename); } } } }
public static CSVProfileReader ReadFile([JetBrains.Annotations.NotNull] string filename) { FileInfo fi = new FileInfo(filename); Logger.Info("Reading " + fi.Name); var filearr = fi.Name.Split('.'); CSVProfileReader cp = new CSVProfileReader(fi.Name, fi.FullName); if (filearr[0] == "Overall" && filearr[1] == "SumProfiles") { cp.Loadtype = filearr[2]; cp.FileType = FileTypeEnum.Overall; } else if (filearr[0] == "SumProfiles" && filearr.Length == 4) { cp.Loadtype = filearr[2]; cp.FileType = FileTypeEnum.SumProfile; cp.Household = filearr[1]; } else { throw new LPGException("Unknown file type: " + fi.Name); } StreamReader sr = new StreamReader(filename); string? header = sr.ReadLine(); if (header == null) { throw new LPGException("Header was null"); } var headerarr = header.Split(';'); cp.Headers.AddRange(headerarr); while (!sr.EndOfStream) { string?line = sr.ReadLine(); if (line == null) { throw new LPGException("Line was null"); } var arr = line.Split(';'); if (arr.Length > 2) { cp.TimeSteps.Add(Convert.ToInt32(arr[0], CultureInfo.InvariantCulture)); cp.TimeStamps.Add(arr[1]); var vals = new List <double>(); for (int i = 2; i < arr.Length; i++) { if (!string.IsNullOrWhiteSpace(arr[i])) { double d = Convert.ToDouble(arr[i], CultureInfo.InvariantCulture); vals.Add(d); } } cp.RowValues.Add(vals); } } sr.Close(); double sum = 0; foreach (var row in cp.RowValues) { sum += row.Sum(); } cp.SumAllValues = sum; return(cp); }