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