/// <summary> /// Constructs the parameter value with the details /// </summary> /// <param name="definition">The parameter definition</param> /// <param name="value">The value</param> /// <param name="lookupParameterValues">The lookup parameter values</param> public ReportFilterParameterValue ( ReportParameterDefinition definition, object value, params ParameterValue[] lookupParameterValues ) : base(definition.Parameter, value, lookupParameterValues) { this.Definition = definition; }
/// <summary> /// Adds a parameter to the report definition /// </summary> /// <param name="parameter">The parameter information</param> /// <param name="targetType">The target type</param> /// <param name="targetName">The target name</param> /// <param name="targetValue">The target value (optional)</param> public void AddParameter ( ParameterInfo parameter, ReportParameterTargetType targetType, string targetName, object targetValue = null ) { Validate.IsNotNull(parameter); Validate.IsNotEmpty(targetName); var parameterName = parameter.Name; var nameUsed = this.Parameters.Any ( p => p.Parameter.Name.Equals(parameterName, StringComparison.OrdinalIgnoreCase) ); if (nameUsed) { throw new InvalidOperationException ( $"The parameter name '{parameterName}' has already been used." ); } var reportParameter = new ReportParameterDefinition ( parameter, targetType, targetName, targetValue ); this.Parameters.Add(reportParameter); }