protected override ParsingResult ParseSource(ILogSource source, LogReaderSettings settings, ParsingResult result = null) { if (source == null) { throw new ArgumentNullException(nameof(source)); } TextStorage storage = new TextStorage(); result = result ?? new ParsingResult(); var log = (IEnumerable <string[]>)source; if (!(source is AzureLogSource)) { throw new ApplicationException("Non Azure log source was tried to be parsed by Azure log reader"); } foreach (var lines in log) { var logEntry = logParser.ParseLine(lines[0], new DateTime(long.Parse(lines[1])), storage); if (logEntry != null) { logEntry = AnalyzeLog(logEntry, storage); result.AddToGroupAll(logEntry); } } return(result); }