Esempio n. 1
0
        static IMessage MakeMessageInternal(TextMessageCapture capture, JsonFormatInfo formatInfo, IRegex bodyRe, ref IMatch bodyReMatch,
                                            MessagesBuilderCallback callback, DateTime sourceTime, ITimeOffsets timeOffsets)
        {
            StringBuilder messageBuf = new StringBuilder();

            messageBuf.Append(capture.HeaderBuffer, capture.HeaderMatch.Index, capture.HeaderMatch.Length);
            if (bodyRe != null)
            {
                if (!bodyRe.Match(capture.BodyBuffer, capture.BodyIndex, capture.BodyLength, ref bodyReMatch))
                {
                    return(null);
                }
                messageBuf.Append(capture.BodyBuffer, bodyReMatch.Index, bodyReMatch.Length);
            }
            else
            {
                messageBuf.Append(capture.BodyBuffer, capture.BodyIndex, capture.BodyLength);
            }

            callback.SetCurrentPosition(capture.BeginPosition, capture.EndPosition);

            string messageStr = messageBuf.ToString();

            JObject messageObj;

            try
            {
                messageObj = JObject.Parse(messageStr);
            }
            catch (Newtonsoft.Json.JsonReaderException e)
            {
                if (!TryRemoveAdditionalText(messageStr, out var fixerdMessageStr))
                {
                    throw;
                }
                try
                {
                    messageObj = JObject.Parse(fixerdMessageStr);
                }
                catch
                {
                    throw e;
                }
            }

            var transfromed = JsonTransformer.Transform(
                formatInfo.Transform.DeepClone() as JObject,
                messageObj
                );
            var      d = transfromed.Property("d")?.Value;
            DateTime date;

            if (d != null && d.Type == JTokenType.String)
            {
                date = DateTime.Parse(d.ToString(), null, System.Globalization.DateTimeStyles.RoundtripKind);
            }
            else if (d != null && d.Type == JTokenType.Date)
            {
                date = (DateTime)((JValue)d).Value;
            }
            else
            {
                throw new Exception("Bad time property \"d\"");
            }

            var t = transfromed.Property("t")?.Value?.ToString();

            var m   = transfromed.Property("m")?.Value;
            var msg = "";

            if (m != null)
            {
                msg = m.ToString();
            }

            var s   = transfromed.Property("s")?.Value?.ToString();
            var sev = !string.IsNullOrEmpty(s) ? char.ToLower(s[0]) : 'i';

            Message ret = new Message(
                capture.BeginPosition,
                capture.EndPosition,
                callback.GetThread(new StringSlice(t ?? "")),
                new MessageTimestamp(date),
                new StringSlice(msg),
                sev == 'i' ? SeverityFlag.Info :
                sev == 'e' ? SeverityFlag.Error :
                sev == 'w' ? SeverityFlag.Warning :
                SeverityFlag.Info,
                formatInfo.ViewOptions.RawViewAllowed ? StringSlice.Concat(capture.MessageHeaderSlice, capture.MessageBodySlice).Trim() : new StringSlice(),
                maxLineLen: formatInfo.ViewOptions.WrapLineLength
                );

            return(ret);
        }
Esempio n. 2
0
        public static void Main(string[] args)
        {
            string input = File.ReadAllText("Examples/Input.json");

            string transformer       = File.ReadAllText("Examples/Transformer_valueof.json");
            string transformedString = JsonTransformer.Transform(transformer, input);

            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_valueofarray.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_copy.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_replace.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_delete.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_ifcondition.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_string.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_math.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_aggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_arrayaggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_looping.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_customfunction.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_nestedfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_xfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_Existance.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.xml");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.csv");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);



            Console.WriteLine("################################################################################################");
            string inputJson   = File.ReadAllText("Examples/ValidationInput.json");
            string schemaJsonX = File.ReadAllText("Examples/SchemaX.json");
            string schemaJsonY = File.ReadAllText("Examples/SchemaY.json");

            string InputToSplit = File.ReadAllText("Examples/InputToSplit.json");

            List <string> outputs = JsonTransformer.SplitJson(InputToSplit, "$.cars.Ford").ToList <string>();

            foreach (string output in outputs)
            {
                Console.WriteLine("-----------------------------------------------------");
                Console.WriteLine(output);
            }

            Console.WriteLine("################################################################################################");

            JsonValidator validator = new JsonValidator(inputJson);

            validator.AddSchema("x", schemaJsonX);
            validator.AddSchema("y", schemaJsonY);

            validator.Validate();

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_nestedloop.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_looptests.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputSpecial = File.ReadAllText("Examples/InputSpecial.json");

            transformer       = File.ReadAllText("Examples/Transformer_customfunctionspecial.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputSpecial)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered = File.ReadAllText("Examples/Input_Unordered.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered2 = File.ReadAllText("Examples/Input_Unordered_2.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered_2.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered2)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");


            string inputDyn = File.ReadAllText("Examples/InputDynamic.json");

            transformer       = File.ReadAllText("Examples/TransformDynamic.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputDyn)));
            Console.WriteLine(transformedString);
        }