Ejemplo n.º 1
0
        private async Task ValidateAsync <T>(T @object, CommandParserResult parserResult, List <Exception> errors, CancellationToken token)
        {
            if (parserResult.HelpRequested)
            {
                return;
            }

            if (!m_validators.HasValidatorFor <T>())
            {
                logger.LogDebug("No validator configured for {name} in command '{cmdName}'", typeof(T).Name, Name);

                return;
            }

            var results = (await Task.WhenAll(m_validators.GetValidators <T>()
                                              .Select(async validator => await validator.ValidateAsync(@object, token))))
                          .ToArray();

            foreach (var result in results)
            {
                if (result.IsValid)
                {
                    continue;
                }

                logger.LogDebug("Validation failed with '{message}'", result.Error.Message);

                errors.Add(result.Error);
            }
        }