static void ProcessFile(FileTypes.Files fileType, string fileName) { try { IFileParser fileParser = new FileParser(); IBaseFile baseFileType = null; IBaseFileProcessor basefileProcessor = null; switch (fileType) { case FileTypes.Files.LPF: baseFileType = new LPFileType(); basefileProcessor = new LPFFileProcessor(); break; case FileTypes.Files.TOU: baseFileType = new TOUFileType(); basefileProcessor = new TOUFileProcessor(); break; } if (!System.IO.File.Exists(fileName)) { Console.WriteLine("File does not exist"); return; } System.IO.FileInfo finfo = new System.IO.FileInfo(fileName); if (finfo.Extension != ".csv") { Console.WriteLine("Invalid File"); return; } var data = fileParser.ParseFile(fileName, baseFileType); var median = basefileProcessor.CalcMedian(data.ToArray()); var outliers = basefileProcessor?.GetOutliers(data.ToArray(), 20, median); PublishData pub = new PublishData(); pub.DisplayData(outliers, finfo.Name, median); } catch (Exception e) { Console.WriteLine(e); throw; } }
public static void Main(string[] args) { var path = ConfigurationManager.AppSettings["CSVFilePath"]; IFileProcessor fileProcessor; Console.WriteLine($"Configured path for reading the csv files is: {path}"); Console.WriteLine($"It reads LP and TOU files and find values that are 20% above or below the median, and print to the console\n"); try { fileProcessor = new LPFileProcessor(); fileProcessor.ProcessFiles(path); fileProcessor = new TOUFileProcessor(); fileProcessor.ProcessFiles(path); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void check_TOU_file_values() { FileProcessorBase <TOUFileModel> tou = new TOUFileProcessor(); Assert.NotNull(tou.SelectValuesSatisfiedTheCondition(MockFile.GetMockTOUData(), "LPFile", 2.5)); }