Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }