static void Main(string[] args) { try { Rules rul = new Rules(); JsonReader jr = new JsonReader(); JsonPrinter jp = new JsonPrinter(); Validator val = new Validator(); //Loading input file jr.file_name = ConfigurationManager.AppSettings.Get("InputFileLocation"); IEnumerable <RawInput> jsonInput = jr.ReadJson <RawInput>(); //Loading Rules file jr.file_name = ConfigurationManager.AppSettings.Get("RulesFileLocation"); IEnumerable <Rules> jsonRules = jr.ReadJson <Rules>(); //Validating Signals val.Validation(jsonRules, jsonInput); //Print result in json format jp.PrintResult(ConfigurationManager.AppSettings.Get("OutputFileLocation")); Console.ReadKey(); } catch (Exception e) { Console.Write("Error Occured: " + e); } }
public void ValidateBL() { Rules rul = new Rules(); JsonReader jr = new JsonReader(); JsonPrinter jp = new JsonPrinter(); Validator val = new Validator(); //Generate output jr.file_name = "../../IOFiles/raw_data.Json"; IEnumerable <RawInput> jsonInput = jr.ReadJson <RawInput>(); jr.file_name = "../../Input/rules.json"; IEnumerable <Rules> jsonRules = jr.ReadJson <Rules>(); val.Validation(jsonRules, jsonInput); jp.PrintResult("../../IOFiles/Result.Json"); //Actual output jr.file_name = "../../IOFiles/Result.Json"; IEnumerable <TestInput> utOutput = jr.ReadJson <TestInput>(); //Expected output jr.file_name = "../../IOFiles/UT_Result.Json"; IEnumerable <TestInput> utCompare = jr.ReadJson <TestInput>(); Compare(utOutput, utCompare); }
private static void CaptureLog(string condition, string stackTrace, LogType type) { JsonNode node = JsonNode.NewTable(); node["c"] = JsonNode.NewString(condition); node["s"] = JsonNode.NewString(stackTrace); node["t"] = JsonNode.NewInt((int)type); if (m_printer == null) { m_printer = new JsonPrinter(); } byte[] bytes = m_printer.Bytes(node); NetworkManager.Instance.Send(ChannelType.Log, bytes); }
private static string ToJson_UnsafeInternal(object p_target, System.Type p_type, bool p_prettyPrint, Serializer p_serializer) { if (p_type != null) { if (p_serializer == null) { p_serializer = DefaultSerializer; } Data v_data = null; p_serializer.TrySerialize(p_type, p_target, out v_data, null); if (p_prettyPrint) { return(JsonPrinter.PrettyJson(v_data)); } else { return(JsonPrinter.CompressedJson(v_data)); } } return(""); }
/// <summary> /// Validates the Input Json file with the User defined Signal Rules /// </summary> /// <param name="jsonRules"></param> /// <param name="jsonInput"></param> public void Validation(IEnumerable <Rules> jsonRules, IEnumerable <RawInput> jsonInput) { JsonPrinter jp = new JsonPrinter(); try { foreach (Rules rl in jsonRules) { IEnumerable <RawInput> inputFiltered; IEnumerable <RawInput> err; inputFiltered = jsonInput.Cast <RawInput>().Where(x => x.Signal.ToLower() == rl.Signal.ToLower() && x.ValueType.ToLower() == rl.ValueType.ToLower()).ToList(); if (inputFiltered.Count() > 0) { if (rl.ValueType == "Integer") { switch (rl.Rule) { case ">": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) > Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should not Greater than " + rl.Value); break; case "=": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) == Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should not equal to " + rl.Value); break; case ">=": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) >= Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should not Greater than or equal to " + rl.Value); break; case "!=": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) != Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should be equal to " + rl.Value); break; case "<=": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) <= Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should not less than or equal to" + rl.Value); break; case "<": err = inputFiltered.Cast <RawInput>().Where(x => Convert.ToDecimal(x.Value) < Convert.ToDecimal(rl.Value)).ToList(); jp.PrintResult(err, "Value should not less than " + rl.Value); break; default: Console.WriteLine("ERROR: Invalid RULE for the Signal {0} and Value Type {1} as {2}", rl.Signal, rl.ValueType, rl.Rule); break; } } else if (rl.ValueType == "String") { switch (rl.Rule) { case "=": err = inputFiltered.Cast <RawInput>().Where(x => x.Value.ToLower() == rl.Value.ToLower()).ToList(); jp.PrintResult(err, "Value should not equal to " + rl.Value); break; case "!=": err = inputFiltered.Cast <RawInput>().Where(x => x.Value.ToLower() != rl.Value.ToLower()).ToList(); jp.PrintResult(err, "Value should be equal to " + rl.Value); break; default: Console.WriteLine("ERROR: Invalid RULE for the Signal {0} and Value Type {1} as {2}", rl.Signal, rl.ValueType, rl.Rule); break; } } else if (rl.ValueType == "DateTime") { switch (rl.Rule.ToLower()) { case "today": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) > DateTime.Now).ToList(); jp.PrintResult(err, "Value should not Greater than " + rl.Value); break; case ">": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) > DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should not Greater than " + rl.Value); break; case "=": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) == DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should not equal to " + rl.Value); break; case ">=": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) >= DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should not Greater than or equal to " + rl.Value); break; case "!=": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) != DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should be equal to " + rl.Value); break; case "<=": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) <= DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should not less than or equal to" + rl.Value); break; case "<": err = inputFiltered.Cast <RawInput>().Where(x => DateTimeConvertor(x.Value) < DateTimeConvertor(rl.Value)).ToList(); jp.PrintResult(err, "Value should not less than " + rl.Value); break; default: Console.WriteLine("ERROR: Invalid RULE for the Signal {0} and Value Type {1} as {2}", rl.Signal, rl.ValueType, rl.Rule); break; } } } } } catch (Exception e) { Console.Write("Error Occured: " + e); } }