public void Add(ColumnConstructorParameterMapping mapping) { if (mapping == null) { throw new ArgumentNullException("mapping"); } if (!HasParameters) { throw new InvalidOperationException("Constuctor has not parameters."); } if (IsReadOnly) { throw new InvalidOperationException("Collection contains mappings for all parameters."); } if (!Contains(mapping)) { mappings.Add(mapping.ConstructorParameterIndex, mapping); } else { throw new ArgumentException("Collection already contains mapping.", "mapping"); } }
/// <summary> /// Removes the mapping. /// </summary> /// <param name="mapping">The mapping to remove.</param> /// <returns><c>true</c> if removed; <c>false</c> otherwise.</returns> public bool Remove(ColumnConstructorParameterMapping mapping) { if (mapping != null) { return(RemoveMappingAt(mapping.ConstructorParameterIndex)); } return(false); }
/// <summary> /// Determines if contains mapping. /// </summary> /// <param name="mapping">The mapping to check.</param> /// <returns><c>true</c> if contains <paramref name="mapping"/>; <c>false</c> otherwise.</returns> public bool Contains(ColumnConstructorParameterMapping mapping) { if (mapping != null) { return(mappings.ContainsKey(mapping.ConstructorParameterIndex)); } return(false); }
/// <summary> /// Add mapping between database column and constructor argument. /// </summary> /// <param name="columnName">The name of the column.</param> /// <param name="parameter">The <see cref="ParameterInfo"/> to create mappings.</param> /// <param name="canBeNull"><c>true</c> if <c>null</c> can be passed; <c>false</c> otherwise.</param> /// <returns>A added <see cref="ColumnConstructorParameterMapping"/> instance.</returns> public ColumnConstructorParameterMapping Add(string columnName, ParameterInfo parameter, bool canBeNull = false) { if (String.IsNullOrWhiteSpace(columnName)) { throw new ArgumentNullException("columnName"); } if (parameter == null) { throw new ArgumentNullException("parameter"); } if (!ContainsParameter(parameter)) { throw new ArgumentException("Not from this collection parameter.", "parameter"); } var mapping = new ColumnConstructorParameterMapping(columnName, parameter, Constructor, canBeNull); Add(mapping); return(mapping); }