/// <summary>
        /// Builds the <see cref="FormItemMetadata"/> view-model object with message structures for given properties.
        /// </summary>
        /// <returns>The <see cref="FormItemMetadata"/> view-model object</returns>
        public FormItemMetadata Build()
        {
            var formItemMetadata = new FormItemMetadata();

            formItemMetadata.Init(_properties);
            return(formItemMetadata);
        }
        public static IValidator BuildWithFormItemMetadata(this IValidatorBuilder validatorBuilder,
                                                           out FormItemMetadata formItemMetadata)
        {
            formItemMetadata = new FormItemMessagesBuilder()
                               .ForProperties(validatorBuilder.Properties)
                               .Build();
            // the reason this variable exists is that out vars can't be used inside a lambda
            var formItemMetadataLocal = formItemMetadata;

            validatorBuilder.WithResultsPresenter((name, errors) =>
                                                  formItemMetadataLocal.SetMessage(name, string.Join(", ", errors), MessageType.Invalid));

            return(validatorBuilder.Build());
        }
 public void SetUp()
 {
     _sut = new FormItemMessagesBuilder().ForProperties(_properties).Build();
 }