Example #1
0
        /// <summary>
        /// Gets the property names.
        /// </summary>
        /// <param name="withChildren">если присвоено значение <c>true</c>, то [with children].</param>
        /// <returns>List&lt;System.String&gt;.</returns>
        public List <string> GetPropertyNames(bool withChildren = true)
        {
            var result = new List <string>(_errors.Keys);

            if (withChildren)
            {
                validationTargets.ForEach(pair =>
                {
                    var fullNames = pair.Value.GetPropertyNames()
                                    .Where(name => !string.IsNullOrEmpty(name))
                                    .Select(name => DottedPathSplitter.Combine(pair.Key, name));
                    result.AddRange(fullNames);
                });
            }
            return(result);
        }
Example #2
0
        private bool SplitAndFindChildValidation(string propertyName, out RsValidationBase validation, out string propertyTail)
        {
            // делим на части имя свойства, если оно составное ишем по первой части дочерний объект валидации
            // и отдаем оставшуюся часть пути на обработку ниже
            var nodes = DottedPathSplitter.Split(propertyName);

            propertyTail = nodes.Tail;
            validation   = null;

            if (!string.IsNullOrEmpty(nodes.Tail) && !string.IsNullOrEmpty(nodes.Head))
            {
                if (validationTargets.ContainsKey(nodes.Head))
                {
                    validation = validationTargets[nodes.Head];
                    return(true);
                }
            }

            return(false);
        }