コード例 #1
0
        public KeywordsParserTests()
        {
            _keywordDictionary = Substitute.For <IKeywordDictionary>();
            _keywordDictionary.IsValidKeyword(Arg.Any <string>()).Returns(true);

            _keywordsParser = new KeywordsParser(_keywordDictionary);
        }
コード例 #2
0
 public CalculateKeywordsCommandHandler(IRepository repository, KeywordsParser keywordsParser, IWebPageDownloader webPageDownloader, IHtmlParser htmlParser, ILogger logger)
 {
     _repository        = repository;
     _keywordsParser    = keywordsParser;
     _webPageDownloader = webPageDownloader;
     _htmlParser        = htmlParser;
     _logger            = logger;
 }
コード例 #3
0
        private static async Task <ApplicationLogSearchResults> FilterLogsAsync(ILogStore logStore, ApplicationLogFilterModel filter, int offset)
        {
            Debug.Assert(filter.dfrom.HasValue);
            Debug.Assert(filter.dto.HasValue);

            var levels = new List <LogRecord.ELogLevel>();

            for (short lvl = filter.lfrom ?? 0; lvl <= filter.lto; lvl++)
            {
                levels.Add((LogRecord.ELogLevel)lvl);
            }

            var searchResults = await logStore.FilterLogsAsync(new LogSearchCriteria {
                ApplicationPath = filter.apppath,
                Server          = filter.server,
                FromUtc         = filter.dfrom.Value.ToUniversalTime(),
                ToUtc           = filter.dto.Value.ToUniversalTime(),
                Logger          = filter.logger,
                Keywords        = KeywordsParser.Parse(filter.keywords),
                Levels          = levels.ToArray(),
                Limit           = MaxLogsCount + 1,
                Offset          = offset
            });

            var foundItems = searchResults.FoundItems.ToArray();

            LogRecord[] finalResults;
            if (foundItems.Length < MaxLogsCount + 1)
            {
                finalResults = foundItems;
            }
            else
            {
                finalResults = new LogRecord[foundItems.Length - 1];
                Array.Copy(foundItems, finalResults, finalResults.Length);
            }

            return(new ApplicationLogSearchResults {
                FoundItems = finalResults,
                Limit = MaxLogsCount,
                Offset = offset,
                IsLastPage = foundItems.Length < MaxLogsCount + 1
            });
        }
コード例 #4
0
 public ArticleFactory(IHtmlParser htmlParser, IWebPageDownloader webPageDownloader, KeywordsParser keywordsParser)
 {
     _htmlParser        = htmlParser;
     _webPageDownloader = webPageDownloader;
     _keywordsParser    = keywordsParser;
 }
コード例 #5
0
        public void Test()
        {
            var s = "http:200.0.1 test test2 ip:192.168.0.1 bla bla2 ";
            var keywordsParsed = KeywordsParser.Parse(s);

            Assert.Equal("200.0.1", keywordsParsed.HttpStatus);
            Assert.Equal("192.168.0.1", keywordsParsed.ClientIp);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Equal("test test2 bla bla2 ", keywordsParsed.FreeText);

            s = "http:200.0.1";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Equal("200.0.1", keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Equal("", keywordsParsed.FreeText);

            s = null;
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.NotNull(keywordsParsed);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Null(keywordsParsed.FreeText);

            s = "testurl:test lkjsdflksjf ghttp:sdfsf";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.NotNull(keywordsParsed);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal(s, keywordsParsed.FreeText);

            s = "   url:'test url with space' 1test 2test service:'service name with space' '";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Equal("test url with space", keywordsParsed.Url);
            Assert.Equal("service name with space", keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal("   1test 2test '", keywordsParsed.FreeText);

            s = " url: service:'test' 1test2";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Null(keywordsParsed.Url);
            Assert.Equal("test", keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal(" url: 1test2", keywordsParsed.FreeText);

            s = " url:' service:'test' 1test2";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Equal(" service:", keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal("est' 1test2", keywordsParsed.FreeText); // TODO: we consider this valid?


            s = "test test2 url:";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal("test test2 url:", keywordsParsed.FreeText);

            s = "test test2 url:'";
            keywordsParsed = KeywordsParser.Parse(s);
            Assert.Null(keywordsParsed.Url);
            Assert.Null(keywordsParsed.Service);
            Assert.Null(keywordsParsed.HttpStatus);
            Assert.Null(keywordsParsed.ClientIp);
            Assert.Equal("test test2 url:'", keywordsParsed.FreeText);
        }