public IEnumerable <ISiteTransaction> GetLogs(ISite site, DateTime lastLogDate, IEnumerable <SiteTransactionFilterExcludedItem> filterExcludedItems = null) { if (logFile == null) { return(null); } IList <ISiteTransaction> logs = new List <ISiteTransaction>(); while (logFileReader.Peek() > 0) { string line = logFileReader.ReadLine(); if (line.StartsWith("#") && !line.StartsWith(fields)) { continue; } if (line.StartsWith(fields)) { string colHeadersRaw = line.Substring(fields.Length, line.Length - fields.Length); InitializeIndexDictionary(colHeadersRaw); } else { if (logIndexDictionary.Count < 1) { return(null); } ISiteTransaction parsedLine = ParseLine(line); if (filterExcludedItems != null) { parsedLine = FilterLine(parsedLine, filterExcludedItems); } if (parsedLine?.LogDate <= lastLogDate) { parsedLine = null; } if (parsedLine != null) { parsedLine.SiteId = site.Id; logs.Add(parsedLine); } } } logFile.Close(); logFile.Dispose(); return(logs); }
private ISiteTransaction FilterLine(ISiteTransaction transaction, IEnumerable <SiteTransactionFilterExcludedItem> siteTransactionFilters) { string uri = transaction.RequestUri; foreach (SiteTransactionFilterExcludedItem siteTransactionFilter in siteTransactionFilters) { if (uri.Contains(siteTransactionFilter.Name)) { return(null); } } return(transaction); }