public List <MilkoscanSample> HandleData(MilkoscanFileData milkoscanFileData) { List <MilkoscanSample> samples = new List <MilkoscanSample>(); foreach (var sampleRow in milkoscanFileData.Samples) { if (sampleRow.Length == milkoscanFileData.Key.Length && !String.IsNullOrWhiteSpace(sampleRow[1])) { MilkoscanSampleParameters sample = ParseData(sampleRow); if (sample != null) { var analysisTime = GetAnalysisTime(sample.Date, sample.Time); samples.Add(new MilkoscanSample { Parameters = sample, AnalysisTime = analysisTime, SampleRow = String.Join(";", sampleRow) }); } } } return(samples); }
public MilkoscanFile ReadFile() { try { string filePath = _serviceSettings.FilePath; if (!File.Exists(filePath)) { if (Directory.Exists(filePath)) { var files = Directory.GetFiles(filePath); foreach (var file in files) { if (Path.GetExtension(file).ToLower() == ".csv") { filePath = file; break; } } } } if (!File.Exists(filePath)) { return(null); } _reader = new StreamReader(filePath); MilkoscanFile milkoscanFile = new MilkoscanFile(); MilkoscanFileData milkoscanFileData = new MilkoscanFileData(); int linePointer = 0; while (!_reader.EndOfStream) { linePointer++; var line = _reader.ReadLine(); var values = line?.Split(";"); if (linePointer == 1) { milkoscanFileData.Key = values; } else { milkoscanFileData.Samples.Add(values); } } milkoscanFile.FileName = Path.GetFileName(filePath); milkoscanFile.FileCreated = File.GetCreationTime(filePath); milkoscanFile.FileModified = File.GetLastWriteTime(filePath); milkoscanFile.FilePath = filePath; milkoscanFile.ReadingTime = DateTime.Now; milkoscanFile.HasWrongStructure = milkoscanFileData?.Key?.Length != 30; milkoscanFile.MilkoScanFileData = milkoscanFileData; _reader.Close(); return(milkoscanFile); } catch (Exception) { return(null); } }