Ejemplo n.º 1
0
        private static void Combine(JsonSchemaModel model, JsonSchema schema)
        {
            JsonSchemaModel jsonSchemaModel1 = model;
            int             num1;

            if (!model.Required)
            {
                bool?required = schema.Required;
                num1 = required.HasValue ? (required.GetValueOrDefault() ? 1 : 0) : 0;
            }
            else
            {
                num1 = 1;
            }
            jsonSchemaModel1.Required = num1 != 0;
            JsonSchemaModel jsonSchemaModel2 = model;
            int             num2             = (int)model.Type;
            JsonSchemaType? type             = schema.Type;
            int             num3             = type.HasValue ? (int)type.GetValueOrDefault() : (int)sbyte.MaxValue;
            int             num4             = num2 & num3;

            jsonSchemaModel2.Type = (JsonSchemaType)num4;
            model.MinimumLength   = MathUtils.Max(model.MinimumLength, schema.MinimumLength);
            model.MaximumLength   = MathUtils.Min(model.MaximumLength, schema.MaximumLength);
            model.DivisibleBy     = MathUtils.Max(model.DivisibleBy, schema.DivisibleBy);
            model.Minimum         = MathUtils.Max(model.Minimum, schema.Minimum);
            model.Maximum         = MathUtils.Max(model.Maximum, schema.Maximum);
            JsonSchemaModel jsonSchemaModel3 = model;
            int             num5;

            if (!model.ExclusiveMinimum)
            {
                bool?exclusiveMinimum = schema.ExclusiveMinimum;
                num5 = exclusiveMinimum.HasValue ? (exclusiveMinimum.GetValueOrDefault() ? 1 : 0) : 0;
            }
            else
            {
                num5 = 1;
            }
            jsonSchemaModel3.ExclusiveMinimum = num5 != 0;
            JsonSchemaModel jsonSchemaModel4 = model;
            int             num6;

            if (!model.ExclusiveMaximum)
            {
                bool?exclusiveMaximum = schema.ExclusiveMaximum;
                num6 = exclusiveMaximum.HasValue ? (exclusiveMaximum.GetValueOrDefault() ? 1 : 0) : 0;
            }
            else
            {
                num6 = 1;
            }
            jsonSchemaModel4.ExclusiveMaximum = num6 != 0;
            model.MinimumItems = MathUtils.Max(model.MinimumItems, schema.MinimumItems);
            model.MaximumItems = MathUtils.Min(model.MaximumItems, schema.MaximumItems);
            model.AllowAdditionalProperties = model.AllowAdditionalProperties && schema.AllowAdditionalProperties;
            if (schema.Enum != null)
            {
                if (model.Enum == null)
                {
                    model.Enum = (IList <JToken>) new List <JToken>();
                }
                CollectionUtils.AddRangeDistinct <JToken>(model.Enum, (IEnumerable <JToken>)schema.Enum, (IEqualityComparer <JToken>) new JTokenEqualityComparer());
            }
            JsonSchemaModel jsonSchemaModel5 = model;
            int             num7             = (int)model.Disallow;
            JsonSchemaType? disallow         = schema.Disallow;
            int             num8             = disallow.HasValue ? (int)disallow.GetValueOrDefault() : 0;
            int             num9             = num7 | num8;

            jsonSchemaModel5.Disallow = (JsonSchemaType)num9;
            if (schema.Pattern == null)
            {
                return;
            }
            if (model.Patterns == null)
            {
                model.Patterns = (IList <string>) new List <string>();
            }
            CollectionUtils.AddDistinct <string>(model.Patterns, schema.Pattern);
        }