Beispiel #1
0
        bool TryGetValidatorFor <TDefinition>(out ICanValidateFilterFor <TDefinition> validator)
            where TDefinition : IFilterDefinition
        {
            if (_filterDefinitionToValidatorMap.TryGetValue(typeof(TDefinition), out var validatorType))
            {
                validator = _container.Get(validatorType) as ICanValidateFilterFor <TDefinition>;
                return(true);
            }

            validator = null;
            return(false);
        }
Beispiel #2
0
    bool TryGetValidatorFor <TDefinition>(out ICanValidateFilterFor <TDefinition> validator)
        where TDefinition : IFilterDefinition
    {
        validator = default;
        var validators = _serviceProvider.GetRequiredService <IList <ICanValidateFilterFor <TDefinition> > >();

        switch (validators.Count)
        {
        case < 1:
            return(false);

        case > 1:
            _logger.MultipleValidatorsForFilter(typeof(TDefinition), validators.Select(_ => _.GetType()));
            return(false);

        default:
            validator = validators[0];
            _logger.FoundValidatorForFilter(typeof(TDefinition), validator.GetType());
            return(true);
        }
    }