static void SetValue <T>(T obj, MemberInfo member, CommanderAttribute param, string name, string value) { if (param.Regex != null) { // We need to validate this value with a regex if (!value.Matches(param.Regex)) { throw new ParameterMatchException(param, value); } } if (param.ValidateWith != null) { // We need to validate this value with a validator if (!typeof(IParameterValidator).GetTypeInfo().IsAssignableFrom(param.ValidateWith)) { throw new ValidatorTypeException(param.ValidateWith); } IParameterValidator validator = (IParameterValidator)Activator.CreateInstance(param.ValidateWith); if (!validator.Validate(name, value)) { throw new ParameterValidationException(validator); } } object convertedValue; if (param.FormatWith != null) { // We need to format this value if (!typeof(IParameterFormatter).GetTypeInfo().IsAssignableFrom(param.FormatWith)) { throw new FormatterTypeException(param.FormatWith); } IParameterFormatter formatter = (IParameterFormatter)Activator.CreateInstance(param.FormatWith); convertedValue = formatter.Format(name, value); } else { // We need to try and convert the value ourselves try { convertedValue = ValueParse(member.Type(), value); } catch (FormatException) { // The value had to be parsed to a numerical type and failed throw new ParameterFormatException(param, value, member.GetType()); } } SetValue(obj, member, convertedValue); }
public TableInfoCollectionFactory(IConfigValidator configValidator, IParameterValidator parameterValidator, IColumnTypeManager columnTypeManager, IPrimaryKeyManager primaryKeyManager, IWhereConditionValidator whereConditionValidator, ILinkedServerValidator linkedServerValidator) { _configValidator = configValidator; _parameterValidator = parameterValidator; _columnTypeManager = columnTypeManager; _primaryKeyManager = primaryKeyManager; _whereConditionValidator = whereConditionValidator; _linkedServerValidator = linkedServerValidator; }
/// <summary> /// Initializes a new instance of the AlignmentInfo class, /// specifying all properties. /// </summary> /// <param name="name">Name of the property</param> /// <param name="description">A friendly description of property.</param> /// <param name="required">True if this is a required property.</param> /// <param name="defaultValue">The default value that will be used (expressed as a string).</param> /// <param name="dataType">The data type: INT, FLOAT, or STRINGLIST.</param> /// <param name="validator">The validation object, or null if no validation is required.</param> public AlignmentInfo( string name, string description, bool required, string defaultValue, string dataType, IParameterValidator validator) { Name = name; Description = description; Required = required; DefaultValue = defaultValue; DataType = dataType; Validator = validator; }
/// <summary> /// Initializes a new instance of the AlignmentInfo class, /// specifying all properties. /// </summary> /// <param name="name">Name of the property</param> /// <param name="description">A friendly description of property.</param> /// <param name="required">True if this is a required property.</param> /// <param name="defaultValue">The default value that will be used (expressed as a string).</param> /// <param name="dataType">The data type: INT, FLOAT, or STRINGLIST.</param> /// <param name="validator">The validation object, or null if no validation is required.</param> public AlignmentInfo( string name, string description, bool required, string defaultValue, string dataType, IParameterValidator validator) { Name = name; Description = description; Required = required; DefaultValue = defaultValue; DataType = dataType; Validator = validator; }
private void AddAopHandlerByUsageAttribute(MethodBase methodBase, IList methodHandlers) { ParameterValidatorHandler handler; if (cachedStaticHandlers == null) { cachedStaticHandlers = new Dictionary <MethodBase, ParameterValidatorHandler>(); } if (!cachedStaticHandlers.TryGetValue(methodBase, out handler)) { List <int> paramIndexs = null; List <IParameterValidator> validators = null; var ps = methodBase.GetParameters(); for (int i = 0, len = ps.Length; i < len; i++) { var p = ps[i]; foreach (var attr in p.GetCustomAttributes <ParameterValidatorAttribute>(true)) { if (paramIndexs == null) { paramIndexs = new List <int>(); validators = new List <IParameterValidator>(); } paramIndexs.Add(i); IParameterValidator validator = attr.CreateValidator(p); if (validator != null) { validators.Add(validator); } } } if (paramIndexs != null) { handler = new ParameterValidatorHandler(paramIndexs.ToArray(), validators.ToArray()); } cachedStaticHandlers[methodBase] = handler; } if (handler != null) { methodHandlers.Add(handler); } }
/// <summary> /// Construct a RequestParameter, specifying all properties. /// </summary> /// <param name="name">The name of the parameter as required by a service.</param> /// <param name="description">A friendly description of the parameter.</param> /// <param name="required">True if this is a required parameter.</param> /// <param name="defaultValue">The default value that will be used (expressed as a string).</param> /// <param name="dataType">The data type: int, double, or string.</param> /// <param name="validator">The validation object, or null if no validation is required.</param> public RequestParameter( string name, string description, bool required, string defaultValue, string dataType, IParameterValidator validator) { SubmitName = name; Description = description; Required = required; DefaultValue = defaultValue; if (dataType != "int" && dataType != "double" && dataType != "string") { string message = Properties.Resource.SearchParamInvalidArgs; Trace.Report(message); throw new NotSupportedException(message); } DataType = dataType; Validator = validator; }
/// <summary> /// Construct a RequestParameter, specifying all properties. /// </summary> /// <param name="name">The name of the parameter as required by a service.</param> /// <param name="description">A friendly description of the parameter.</param> /// <param name="required">True if this is a required parameter.</param> /// <param name="defaultValue">The default value that will be used (expressed as a string).</param> /// <param name="dataType">The data type: int, double, or string.</param> /// <param name="validator">The validation object, or null if no validation is required.</param> public RequestParameter( string name, string description, bool required, string defaultValue, string dataType, IParameterValidator validator) { SubmitName = name; Description = description; Required = required; DefaultValue = defaultValue; if (dataType != "int" && dataType != "double" && dataType != "string") { string message = "SearchParameter: Only int, double, and string supported."; Trace.Report(message); throw new NotSupportedException(message); } DataType = dataType; Validator = validator; }
public SonosController(ISonosClient client, IParameterValidator parameterValidator) { _client = client; _parameterValidator = parameterValidator; }
public MySqlTableInfoCollectionFactory(IConfigValidator configValidator, IParameterValidator parameterValidator, IColumnTypeManager columnTypeManager, IPrimaryKeyManager primaryKeyManager, IWhereConditionValidator whereConditionValidator, ILinkedServerValidator linkedServerValidator) : base(configValidator, parameterValidator, columnTypeManager, primaryKeyManager, whereConditionValidator, linkedServerValidator) { }
public ValidatorInfo(int parameterIndex, IParameterValidator validator) { this.parameterIndex = parameterIndex; this.validator = validator; }
public ParameterValidatorHandler(int paramIndex, IParameterValidator validator) : this(new int[] { paramIndex }, new IParameterValidator[] { validator }) { }
internal ParameterValidationException(IParameterValidator validator) { Validator = validator; }
/// <summary> /// Initializes the class with a target assembly. /// </summary> /// <param name="parameterValidator">The parameter validator.</param> public AssemblyMiner(IParameterValidator parameterValidator) { this._parameterValidator = parameterValidator; }
/// <summary> /// Initializes a new instance of the <see cref="Parameter"/> class. /// </summary> /// <param name="name">Name of the <see cref="Parameter"/>.</param> /// <param name="shortName">Short name of the <see cref="Parameter"/>.</param> /// <param name="isRequired">if set to <c>true</c> [b is required].</param> /// <param name="defaultValue">The STR default value.</param> /// <param name="validator">The validator.</param> /// <param name="strHelpMessage">The <see cref="Parameter"/> help message.</param> public Parameter(string name, string shortName, bool isRequired, string defaultValue, IParameterValidator validator, string helpMessage) : this(name, shortName, isRequired, defaultValue, validator == null ? null : new List <IParameterValidator>(new IParameterValidator[] { validator }), helpMessage) { }
/// <summary> /// Initializes a new instance of the <see cref="Parameter"/> class. /// </summary> /// <param name="name">Name of the <see cref="Parameter"/>.</param> /// <param name="shortName">Short name of the <see cref="Parameter"/>.</param> /// <param name="isRequired">if set to <c>true</c> [b is required].</param> /// <param name="defaultValue">The STR default value.</param> /// <param name="validator">The validator.</param> public Parameter(string name, string shortName, bool isRequired, string defaultValue, IParameterValidator validator) : this(name, shortName, isRequired, defaultValue, validator, null) { }