private IMarkdownToken ValidateOne(MarkdownTagInlineToken token, Match m, MarkdownTagValidationRule validator) { if (!string.IsNullOrEmpty(validator.CustomValidatorContractName)) { if (CompositionHost == null) { Logger.LogWarning($"Unable to validate tag by contract({validator.CustomValidatorContractName}): CompositionHost is null."); return null; } var customValidators = GetCustomMarkdownTagValidators(validator); if (customValidators.Count == 0) { Logger.LogWarning($"Cannot find custom markdown tag validator by contract name: {validator.CustomValidatorContractName}."); return null; } if (customValidators.TrueForAll(av => av.Validate(token.Content))) { return null; } } return ValidateOneCore(token, m, validator); }
private IMarkdownToken ValidateOneCore(MarkdownTagInlineToken token, Match m, MarkdownTagValidationRule validator) { switch (validator.Behavior) { case TagRewriteBehavior.Warning: Logger.LogWarning(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return null; case TagRewriteBehavior.Error: Logger.LogError(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return null; case TagRewriteBehavior.ErrorAndRemove: Logger.LogError(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return new MarkdownIgnoreToken(token.Rule); case TagRewriteBehavior.None: default: return null; } }
private List<ICustomMarkdownTagValidator> GetCustomMarkdownTagValidators(MarkdownTagValidationRule validator) { return CompositionHost .GetExports(typeof(ICustomMarkdownTagValidator), validator.CustomValidatorContractName) .Cast<ICustomMarkdownTagValidator>() .ToList(); }
private IMarkdownToken ValidateOne(MarkdownTagInlineToken token, Match m, MarkdownTagValidationRule validator) { if (!string.IsNullOrEmpty(validator.CustomValidatorContractName)) { if (CompositionHost == null) { Logger.LogWarning($"Unable to validate tag by contract({validator.CustomValidatorContractName}): CompositionHost is null."); return(null); } var customValidators = GetCustomMarkdownTagValidators(validator); if (customValidators.Count == 0) { Logger.LogWarning($"Cannot find custom markdown tag validator by contract name: {validator.CustomValidatorContractName}."); return(null); } if (customValidators.TrueForAll(av => av.Validate(token.Content))) { return(null); } } return(ValidateOneCore(token, m, validator)); }
private IMarkdownToken ValidateOneCore(MarkdownTagInlineToken token, Match m, MarkdownTagValidationRule validator) { switch (validator.Behavior) { case TagRewriteBehavior.Warning: Logger.LogWarning(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return(null); case TagRewriteBehavior.Error: Logger.LogError(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return(null); case TagRewriteBehavior.ErrorAndRemove: Logger.LogError(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.Content)); return(new MarkdownIgnoreToken(token.Rule)); case TagRewriteBehavior.None: default: return(null); } }
private List <ICustomMarkdownTagValidator> GetCustomMarkdownTagValidators(MarkdownTagValidationRule validator) { return(CompositionHost .GetExports(typeof(ICustomMarkdownTagValidator), validator.CustomValidatorContractName) .Cast <ICustomMarkdownTagValidator>() .ToList()); }