Пример #1
0
        /// <summary>
        ///     Adds specification of type <typeparamref name="T" />.
        /// </summary>
        /// <param name="options"></param>
        /// <param name="specification">Specification of type <typeparamref name="T" /></param>
        /// <typeparam name="T">Specified type.</typeparam>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="specification" /> is null.</exception>
        public static IValidationContextOptions AddSpecification <T>(this IValidationContextOptions options, Specification <T> specification)
            where T : class
        {
            if (specification == null)
            {
                throw new ArgumentNullException(nameof(specification));
            }

            return(OptionsUnwrapper.UnwrapSpecifications(options, specifications =>
            {
                if (specifications.ContainsKey(typeof(T)))
                {
                    specifications[typeof(T)] = specification;
                }
                else
                {
                    specifications.Add(typeof(T), specification);
                }
            }));
        }