ICommandBusinessValidator BuildDynamicallyDiscoveredBusinessValidator(Type commandType, IDictionary<Type, IEnumerable<Type>> typeAndAssociatedValidatorTypes)
{
Type[] typeArgs = { commandType };
var closedValidatorType = typeof(ComposedCommandBusinessValidator<>).MakeGenericType(typeArgs);
var propertyTypeAndValidatorInstances = new Dictionary<Type, IEnumerable<IValidator>>();
foreach (var key in typeAndAssociatedValidatorTypes.Keys)
{
var validatorTypes = typeAndAssociatedValidatorTypes[key];
if (validatorTypes.Any())
propertyTypeAndValidatorInstances.Add(key, validatorTypes.Select(v => _container.Get(v) as IValidator).ToArray());
}
return Activator.CreateInstance(closedValidatorType, propertyTypeAndValidatorInstances) as ICommandBusinessValidator;
}
#pragma warning restore 1591 // Xml Comments