public static bool IsValidItem(this Item item, ValidatorsMode validationMode = ValidatorsMode.ValidatorBar)
        {
            if (item == null)
            {
                return(false);
            }

            var validators = item.GetValidationResult(validationMode);

            return(!validators.Any(v => !v.IsEvaluating && v.Result != ValidatorResult.Valid && v.Result != ValidatorResult.Unknown));
        }
        public static ValidatorCollection GetValidationResult(this Item item, ValidatorsMode validationMode = ValidatorsMode.ValidatorBar)
        {
            var validators = ValidatorManager.BuildValidators(validationMode, item);

            if (validators.Count == 0)
            {
                return(new ValidatorCollection());
            }

            ValidatorOptions options = new ValidatorOptions(true);

            ValidatorManager.Validate(validators, options);

            return(validators);
        }
        public override ValidatorCollection BuildValidators(ValidatorsMode mode, Item item)
        {
            var validators             = base.BuildValidators(mode, item);
            var globalFieldRulesFolder = GetGlobalFieldRulesFolder(item);

            if (globalFieldRulesFolder == null)
            {
                return(validators);
            }
            foreach (var validator in GetAdditionalValidators(item, globalFieldRulesFolder, mode))
            {
                validators.Add(validator);
            }
            return(validators);
        }
示例#4
0
    private bool RunValidation(ValidatorsMode mode, StringBuilder output, ref int count)
    {
      var validators = ValidatorManager.BuildValidators(mode, Context.CurrentItem);
      count += validators.Count;

      var options = new ValidatorOptions(true);
      ValidatorManager.Validate(validators, options);

      var success = true;

      foreach(BaseValidator val in validators)
      {
        if (Verbose || val.Result != ValidatorResult.Valid)
          Formatter.PrintDefinition(val.Name, val.Result.ToString(), 60, output);

        if (val.Result != ValidatorResult.Valid)
          success = false;
      }

      return success;
    }
 protected ValidatorCollection BuildValidators(ValidatorsMode mode, Item folder)
 {
     Assert.ArgumentNotNull(folder, "folder");
     SafeDictionary<string, string> controls = new SafeDictionary<string, string>();
     foreach (FieldInfo info in this.FieldInfo.Values)
     {
         controls[info.FieldID.ToString()] = info.ID;
     }
     return ValidatorManager.BuildValidators(mode, this.ValidatorsKey, folder, controls);
 }
        private IEnumerable <BaseValidator> GetAdditionalValidators(Item item, Item globalFieldRulesFolder, ValidatorsMode mode)
        {
            var baseTemplates = new HashSet <string>(_templateManager.GetTemplate(item).GetBaseTemplates().Select(x => x.ID.ToString()));

            foreach (var globalFieldRule in GetGlobalFieldRules(globalFieldRulesFolder))
            {
                var template = globalFieldRule[Templates.GlobalFieldRule.Fields.Template];
                if (!FieldRuleAppliesToItem(item, globalFieldRule, template, baseTemplates))
                {
                    continue;
                }
                MultilistField validators = null;
                switch (mode)
                {
                case ValidatorsMode.Gutter:
                    validators = globalFieldRule.Fields[Templates.FieldTypeValidationRules.Fields.QuickValidationBar];
                    break;

                case ValidatorsMode.ValidateButton:
                    validators = globalFieldRule.Fields[Templates.FieldTypeValidationRules.Fields.ValidateButton];
                    break;

                case ValidatorsMode.ValidatorBar:
                    validators = globalFieldRule.Fields[Templates.FieldTypeValidationRules.Fields.ValidatorBar];
                    break;

                case ValidatorsMode.Workflow:
                    validators = globalFieldRule.Fields[Templates.FieldTypeValidationRules.Fields.Workflow];
                    break;
                }
                foreach (var validator in validators?.GetItems() ?? Enumerable.Empty <Item>())
                {
                    var baseValidator = BuildValidator(validator, item);
                    baseValidator.FieldID = item.Fields[globalFieldRule[Templates.GlobalFieldRule.Fields.Field]].ID;
                    yield return(baseValidator);
                }
            }
        }