Beispiel #1
0
        public string GetPropertyError(ValidationViewModelBase itm, string propertyName)
        {
            if (!this.propertyGetters.ContainsKey(propertyName))
            {
                return(string.Empty);
            }

            var propertyValue = this.propertyGetters[propertyName](itm);
            var errormessages = new List <string>();

            if (this.validators.ContainsKey(propertyName))
            {
                errormessages.AddRange(this.validators[propertyName]
                                       .Where(v => !v.IsValid(propertyValue))
                                       .Select(v => v.ErrorMessage));
            }

            if (this.instanceValidators.ContainsKey(propertyName))
            {
                errormessages.AddRange(this.instanceValidators[propertyName]
                                       .Where(v => !v.IsValid(itm, propertyValue))
                                       .Select(v => v.ErrorMessage));
            }

            return(string.Join(Environment.NewLine, errormessages));
        }
Beispiel #2
0
        public int GetValidPropertiesCount(ValidationViewModelBase itm)
        {
            var query = new List <object>();

            query.AddRange(
                from validator in this.validators
                where validator.Value.All(attribute => attribute.IsValid(this.propertyGetters[validator.Key](itm)))
                select validator.Value);
            query.AddRange(
                from validator in this.instanceValidators
                where
                validator.Value.All(
                    attribute => attribute.IsValid(itm, this.propertyGetters[validator.Key](itm)))
                select validator.Value);

            return(query.Count());
        }
Beispiel #3
0
        public string GetError(ValidationViewModelBase itm)
        {
            var errors = new List <string>();

            errors.AddRange(
                from validator in this.validators
                from attribute in validator.Value
                where !attribute.IsValid(this.propertyGetters[validator.Key](itm))
                select attribute.ErrorMessage);
            errors.AddRange(
                from validator in this.instanceValidators
                from attribute in validator.Value
                where !attribute.IsValid(itm, this.propertyGetters[validator.Key](itm))
                select attribute.ErrorMessage);
            errors.AddRange(
                from validator in this.classValidators
                where !validator.IsValid(itm)
                select validator.ErrorMessage);

            return(string.Join(Environment.NewLine, errors));
        }