예제 #1
0
        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))
예제 #2
0
        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);
        }