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());
 }