/// <summary>
        /// Validates <paramref name="propertyContainer"/> against validation rules from <paramref name="validator"/>.
        /// </summary>
        /// <param name="validator">Validator that provides validation rules to check.</param>
        /// <param name="propertyContainer"><see cref="IPropertyContainer"/> to validate.</param>
        /// <returns>Validation messages.</returns>
        public static IEnumerable <Message> Validate(this IValidator validator, IPropertyContainer propertyContainer)
        {
            propertyContainer.AssertArgumentNotNull(nameof(propertyContainer));
            validator.AssertArgumentNotNull(nameof(validator));

            return(propertyContainer.Validate(validator.GetRules()));
        }