public override async Task <List <string> > List(string proj, string logLevel, string keyWrod = null, int page = 1, int pageSize = 100) { page = page <= 1 ? 0 : page; int startLine = page * pageSize; List <string> result = new List <string>(); var fileName = Path.Combine(options.File, proj, logLevel); try { ReverseLineReader reader = new ReverseLineReader(fileName); var doc = reader.GetEnumerator(); int index = 0; while (doc.MoveNext()) { index++; if (index > startLine) { if (!string.IsNullOrEmpty(keyWrod)) { if (doc.Current.Contains(keyWrod)) { result.Add(doc.Current); } } else { result.Add(doc.Current); } } if (result.Count == pageSize) { break; } } } catch (NotSupportedException ex) { logger.LogError(ex.Message, ex); } catch (Exception ex) { logger.LogError(ex.Message, ex); } return(result); }
public void UnseekableStreamThrowsExceptionEagerly() { var stream = new DisabledMemoryStream { canSeek = false }; var reader = new ReverseLineReader(() => stream); try { reader.GetEnumerator(); Assert.Fail("Expected exception"); } catch (NotSupportedException) { // Expected } }