private static void ReadScanOutputLine(ScanResults result, string line) { var words = line.Split(' '); switch (words[0]) { case ScanningLineStart: if (words.Length < 2) { Log.Error("Error trying to parse scan results, Scanning line contain only one word"); result.isError = true; return; } if (int.TryParse(words[^ 2], out var numOfThreatsFound))
private ScanResults ParseScanOutput(string scanProcessOutput) { Log.Information("Parsing scan output"); string resultString = Regex.Replace(scanProcessOutput, @"^\s*$\n|\r", string.Empty, RegexOptions.Multiline).TrimEnd(); var linesArray = resultString.Split(new[] { '\r', '\n' }); var result = new ScanResults() { isError = false }; foreach (string line in linesArray) { ReadScanOutputLine(result, line); } if (result.isError) { result.errorMessage = scanProcessOutput; } Log.Information("Done Parsing scan Output"); return(result); }