public override Object Clone()
        {
            var cloneCopy = new OpenApiBodyValidator(this._context, this._openApiElement);

            this.Copy(cloneCopy);
            return(cloneCopy);
        }
Exemple #2
0
        public override void AddRule(IValidate rule)
        {
            if (rule is OpenApiParameterRule)
            {
                var _openApiParameterRule = rule as OpenApiParameterRule;

                switch (_openApiParameterRule.InParameterLocation)
                {
                case ParameterLocation.Query:                           //Query = 0,
                    if (_queryValidator == null)
                    {
                        _queryValidator = new OpenApiQueryStringValidator(_validatorContext);
                    }
                    _queryValidator.AddRule(_openApiParameterRule);
                    break;

                case ParameterLocation.Header:                          //Header = 1,
                    if (_headerValidator == null)
                    {
                        _headerValidator = new OpenApiHeadersValidator(_validatorContext);
                    }
                    _headerValidator.AddRule(_openApiParameterRule);
                    break;

                case ParameterLocation.Path:                          //Path = 2,
                    if (_pathValidator == null)
                    {
                        _pathValidator = new OpenApiPathValidator(_validatorContext);
                    }
                    _pathValidator.AddRule(_openApiParameterRule);
                    break;

                case ParameterLocation.Cookie:                          //Cookie = 3
                    if (_cookiesValidator == null)
                    {
                        _cookiesValidator = new OpenApiCookiesValidator(_validatorContext);
                    }
                    _cookiesValidator.AddRule(_openApiParameterRule);
                    break;

                case null:
                    break;

                default:
                    break;
                }
            }
            else
            if (rule is OpenApiBodyValidator)
            {
                _bodyValidator = rule as OpenApiBodyValidator;
            }
        }
        //if (!parameter.AllowEmptyValue)
        //validator.AddRule(BuildRequired(_validatorContext, parameter));
        //private IValidate BuildRequired(IValidatorContext validatorContext, IOpenApiElement openApiElement)
        //{
        //return new OpenApiRequiredRule<IOpenApiElement>(validatorContext, openApiElement);

        //switch (schema.Type)
        //{
        //	case "string":
        //		new ValidatorRule<string, IOpenApiElement>(validatorContext, openApiElement);
        //		break;
        //	case "boolean":
        //		new ValidatorRule<bool, IOpenApiElement>(validatorContext, openApiElement);
        //		break;
        //	case "boolean":
        //		new ValidatorRule<bool, IOpenApiElement>(validatorContext, openApiElement);
        //		break;
        //	default:
        //		break;
        //}
        //return null;
        //}

        /// <summary>
        ///
        /// </summary>
        public IValidate Build(OpenApiRequestBody requestBody)
        {
            IValidate validator = new OpenApiBodyValidator(_validatorContext, requestBody);

            return(validator);
        }