Exemplo n.º 1
0
        private static ValidateResponse ValidateJSON(string JSONString, string Schema, bool IsSchemaFileName, bool IgnoreCase, bool IgonreSpace)
        {
            Schema = (IsSchemaFileName) ? File.ReadAllText(Schema).Replace("additionalproperties", "additionalProperties") : Schema;
            Schema = IgonreSpace ? Schema.Replace(" ", "") : Schema;
            Schema = IgnoreCase ? Schema.ToLower() : Schema;
            ValidateRequest ValidateRequest = new ValidateRequest {
                Json = JSONString, Schema = Schema
            };
            ValidateResponse ValidateResponse = SchemaController.Validate(ValidateRequest);

            return(ValidateResponse);
        }
Exemplo n.º 2
0
        internal static ValidateResponse Validate(ValidateRequest ValidateRequest)
        {
            ValidateResponse ValidateResponse = new ValidateResponse {
                IsValid = true, Errors = new List <ValidationError>()
            };

            if (string.IsNullOrEmpty(ValidateRequest.Schema))
            {
                return(ValidateResponse);
            }
            JSchema JSchema = JSchema.Parse(ValidateRequest.Schema);
            JToken  JToken  = JToken.Parse(ValidateRequest.Json);
            bool    IsValid = SchemaExtensions.IsValid(JToken, JSchema, out IList <ValidationError> Errors);

            ValidateResponse.IsValid = IsValid;
            ValidateResponse.Errors  = Errors;

            return(new ValidateResponse {
                IsValid = IsValid, Errors = Errors
            });
        }
Exemplo n.º 3
0
        protected static T Load <T>(string FileName, string Schema = null, bool IsSchemaFileName = true, bool IgnoreCase = true, bool IgonreSpace = true) where T : class
        {
            string JSONString = LoadFile(FileName);

            JSONString = IgonreSpace ? JSONString.Replace(" ", "") : JSONString;
            JSONString = IgnoreCase ? JSONString.ToLower() : JSONString;
            JSONString = JSONString.Trim();
            using (ValidateResponse ValidateResponse = ValidateJSON(JSONString, Schema, IsSchemaFileName, IgnoreCase, IgonreSpace))
            {
                if (ValidateResponse.IsValid)
                {
                    JsonConvert.DefaultSettings = () => new JsonSerializerSettings
                    {
                        DateParseHandling    = DateParseHandling.DateTime,
                        StringEscapeHandling = StringEscapeHandling.EscapeNonAscii,
                        DefaultValueHandling = DefaultValueHandling.Ignore,
                        NullValueHandling    = NullValueHandling.Ignore
                    };
                    T Result = JsonConvert.DeserializeObject <T>(JSONString);
                    return(Result);
                }
                // TODO Display Error Message and Prevent Simulation From Starting
                if (ValidateResponse.Errors.Count <= 0)
                {
                    return(null);                                                      /*return (Instance = null);*/
                }
                List <string> Errors = new List <string> {
                    $"\"{FileName}\" Failed To Validate Against Requirements.", "Below is the List of Validation Results\n["
                };
                Errors.AddRange(ValidateResponse.Errors.Select(StringExtensions.ToString).ToList());
                Errors.Add("]");
                string ErrorsFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), Scenario.DefaultErrorsFileName ?? "Errors.Log");
                File.AppendAllLines(ErrorsFileName, Errors);
                return(null);
            }
        }