Example #1
0
        public void Ignores_Comments_Starting_With_Hash()
        {
            const string testInput = "#Test1 [a-z]\nTest2 [0-9]";
            var          stream    = new MemoryStream();
            var          writer    = new StreamWriter(stream);

            writer.Write(testInput);
            writer.Flush();
            stream.Seek(0, SeekOrigin.Begin);

            var results = BasicAliasConfigReader.ParseStream(stream);

            Assert.IsNotNull(results, "Returned alias enumerable was null");
            var array = results.ToArray();

            Assert.IsNotEmpty(array, "Returned alias array is emtpy");
            Assert.AreEqual(1, array.Length, "Returned alias array has an incorrect number of elements");
            Assert.AreEqual("Test2", array[0].Name, "Second alias had an incorrect name");
            Assert.AreEqual("[0-9]", array[0].RegexPattern, "Second alais had an incorrect pattern");
        }
Example #2
0
File: ETL.cs Project: fdsa-ltd/DMS
        public List <object> Process(JObject setting, List <DynamicEntity> input)
        {
            List <object> list = new List <object>();
            var           grok = setting["grok"].Value <string>();

            var resolver = new RegexAliasResolver(BasicAliasConfigReader.Parse(Path.Combine(AppContext.BaseDirectory, "grok.patterns")));
            var regex    = resolver.ResolveToRegex(grok);

            foreach (dynamic data in input)
            {
                Dictionary <string, object> dict = new Dictionary <string, object>();

                foreach (Match match in regex.Matches(data.message))
                {
                    foreach (var item in match.Groups.Skip(1).Where(m => m.Success))
                    {
                        dict.Add(item.Name, item.Value);
                    }
                }
                list.Add(new DynamicEntity(dict));
            }
            return(list);
        }