protected override Exception Try(UnvalidatedRequestValuesBase args, out object value)
        {
            dynamic obj = (DynamicObject)CreateNew();

            try
            {
                var names = obj.GetDynamicMemberNames();
                foreach (var name in names)
                {
                    var v = args[name] ?? args[FullName + "." + name];
                    if (v != null)
                    {
                        obj[name] = v;
                    }
                }
                value = obj["result"];
                if (value == null)
                {
                    return(new ApiException(ExceptionCode.ParameterMissing, FullName));
                }
                return(value as Exception);
            }
            catch (Exception ex)
            {
                value = null;
                return(ex);
            }
        }
Example #2
0
 // For unit testing
 internal JQueryQueryStringValueProvider(ControllerContext controllerContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : base(controllerContext.HttpContext.Request.QueryString,
            unvalidatedValues.QueryString,
            CultureInfo.CurrentCulture,
            jQueryToMvcRequestNormalizationRequired: true)
 {
 }
Example #3
0
 public RequestValues(UnvalidatedRequestValuesBase requestvalues)
 {
     _form        = requestvalues.Form;
     _queryString = requestvalues.QueryString;
     _headers     = requestvalues.Headers;
     _files       = requestvalues.Files;
     _cookies     = requestvalues.Cookies;
     _url         = requestvalues.Url;
     _rawUrl      = requestvalues.RawUrl;
     _path        = requestvalues.Path;
     _pathInfo    = requestvalues.PathInfo;
     _routeDatas  = Empty;
 }
Example #4
0
        protected override Exception Try(UnvalidatedRequestValuesBase args, out object value)
        {
            if (_propertyCount == 0)
            {
                value = null;
                return(new ApiException(ExceptionCode.ParameterMissing, FullName));
            }
            object entity = null;

            for (var i = 0; i < _propertyCount; i++)
            {
                var p      = _propertyInfos[i];
                var parser = _parsers[i];
                if (parser == null)
                {
                    value = null;
                    return(null);
                }
                object val;
                var    error = parser.TryParse(args, out val);
                if (error != null)
                {
                    if (error.HResult == 3002)
                    {
                        continue;
                    }
                    value = null;
                    return(error);
                }

                if (entity == null)
                {
                    entity = CreateNew();
                }
                p.SetValue(entity, val);
            }
            if (entity == null)
            {
                value = null;
                return(new ApiException(ExceptionCode.ParameterMissing, FullName));
            }
            value = entity;
            return(null);
        }
Example #5
0
        public Exception TryParse(UnvalidatedRequestValuesBase args, out object value)
        {
            Exception error;
            var       str = args[FullName] ?? args[Name];

            if (str != null)
            {
                error = Try(str, out value);
                if (error != null)
                {
                    if (error.HResult != (int)ExceptionCode.ParameterMissing)
                    {
                        return(error);
                    }
                }
                else if (value != null)
                {
                    TrimValue(ref value);
                    return(null);
                }
                else
                {
                    return(null);
                }
            }
            error = Try(args, out value);
            if (error == null)
            {
                TrimValue(ref value);
                return(null);
            }
            if (error.HResult == (int)ExceptionCode.ParameterMissing)
            {
                if (!HasDefaultValue)
                {
                    return(error);
                }
                value = DefaultValue;
                TrimValue(ref value);
                return(null);
            }
            return(error);
        }
Example #6
0
        public object[] GetArguments(UnvalidatedRequestValuesBase values, out Exception error)
        {
            if (_parameterLength == 0)
            {
                error = null;
                return(new object[0]);
            }
            var args = new object[_parameterLength];

            for (var i = 0; i < _parameterLength; i++)
            {
                var    p = _parameterParsers[i];
                object obj;
                error = p.TryParse(values, out obj);
                if (error != null)
                {
                    return(null);
                }
                args[i] = obj;
            }
            error = null;
            return(args);
        }
 internal CookieValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : this(modelBindingExecutionContext.HttpContext.Request.Cookies, unvalidatedValues.Cookies, CultureInfo.CurrentCulture) {
 }
Example #8
0
 // For unit testing
 internal QueryStringValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : base(modelBindingExecutionContext.HttpContext.Request.QueryString, unvalidatedValues.QueryString, CultureInfo.InvariantCulture)
 {
 }
 // For unit testing
 internal FormValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : base(modelBindingExecutionContext.HttpContext.Request.Form, unvalidatedValues.Form, CultureInfo.CurrentCulture) {
 }
Example #10
0
 // For unit testing
 internal FormValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : base(modelBindingExecutionContext.HttpContext.Request.Form, unvalidatedValues.Form, CultureInfo.CurrentCulture)
 {
 }
 public UnvalidatedRequestValuesWrapper(UnvalidatedRequestValuesBase unvalidatedValues)
 {
     _unvalidatedValues = unvalidatedValues;
 }
Example #12
0
 internal CookieValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : this(modelBindingExecutionContext.HttpContext.Request.Cookies, unvalidatedValues.Cookies, CultureInfo.CurrentCulture)
 {
 }
 public UnvalidatedRequestValuesWrapper(UnvalidatedRequestValuesBase unvalidatedValues)
 {
     _unvalidatedValues = unvalidatedValues;
 }
Example #14
0
 protected abstract Exception Try(UnvalidatedRequestValuesBase args, out object value);
Example #15
0
 public void SetUnvalidated(UnvalidatedRequestValuesBase value)
 {
     unvalidated = value;
 }
 // For unit testing
 internal QueryStringValueProvider(ModelBindingExecutionContext modelBindingExecutionContext, UnvalidatedRequestValuesBase unvalidatedValues)
     : base(modelBindingExecutionContext.HttpContext.Request.QueryString, unvalidatedValues.QueryString, CultureInfo.InvariantCulture) {
 }
Example #17
0
 /// <summary>
 /// 请求变量构造函数
 /// </summary>
 /// <param name="values"></param>
 public RequestValues(UnvalidatedRequestValuesBase values)
 {
     _values = values;
 }