Manos.Mvc.ModelBinder.GetModelValue C# (CSharp) Method

GetModelValue() private method

private GetModelValue ( string key, IModelValueProvider provider, PropertyInfo pi ) : ModelValue
key string
provider IModelValueProvider
pi System.Reflection.PropertyInfo
return ModelValue
        ModelValue GetModelValue(string key, IModelValueProvider provider, PropertyInfo pi)
        {
            // Get the model value
            var string_value = provider.GetValue(key);
            if (string_value == null)
                return null;

            // Create the model value entry
            var mv = new ModelValue();
            mv.Name = key;
            mv.InputValue = string_value;

            // Convert to required type
            if (pi.PropertyType != typeof(string))
            {
                try
                {
                    mv.ConvertedValue = Convert.ChangeType(string_value, pi.PropertyType);
                }
                catch (Exception x)
                {
                    mv.Errors.Add(new ModelStateError(pi.Name, string.Format("Can't convert '{0}' to {1} - {2}", string_value, pi.PropertyType.FullName, x.Message)));
                }
            }
            else
            {
                mv.ConvertedValue = string_value;
            }

            return mv;
        }