示例#1
0
        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);
        }
示例#2
0
        public void UnseekableStreamThrowsExceptionEagerly()
        {
            var stream = new DisabledMemoryStream {
                canSeek = false
            };
            var reader = new ReverseLineReader(() => stream);

            try
            {
                reader.GetEnumerator();
                Assert.Fail("Expected exception");
            }
            catch (NotSupportedException)
            {
                // Expected
            }
        }
示例#3
0
 public void UnseekableStreamThrowsExceptionEagerly()
 {
     var stream = new DisabledMemoryStream { canSeek = false };
     var reader = new ReverseLineReader(() => stream);
     try
     {
         reader.GetEnumerator();
         Assert.Fail("Expected exception");
     }
     catch (NotSupportedException)
     {
         // Expected
     }
 }