コード例 #1
0
        /// <summary>
        /// Obtient une concaténation des messages d'erreur pour le nom du champ spécifié.
        /// </summary>
        public virtual string this[string columnName]
        {
            get
            {
                // L'objet n'a pas encore été validé
                if (_validationResults == null)
                {
                    return(string.Empty);
                }

                ValidationResults filteredResults = new ValidationResults();

                filteredResults.AddAllResults(_validationResults.Where(vr => vr.Key == columnName));

                if (!filteredResults.IsValid)
                {
                    //On renvoie la concaténation de toutes les erreurs sur la propriété "columnName"
                    IEnumerable <string> messages = filteredResults
                                                    .Flatten(vr => vr.NestedValidationResults)
                                                    .Where(vr => vr.NestedValidationResults == null || !vr.NestedValidationResults.Any())//on prend seulement les feuilles de l'arbre
                                                    .Select(vr => vr.Message);

                    return(string.Join("|", messages));
                }

                return(string.Empty);
            }
        }