Catel.Windows.Controls.WarningAndErrorValidator.CheckFieldWarningsOrErrors C# (CSharp) Метод

CheckFieldWarningsOrErrors() приватный статический Метод

Checks the field warnings or errors.
private static CheckFieldWarningsOrErrors ( object value, string propertyChanged, ValidationType validationType ) : string>.Dictionary
value object The value.
propertyChanged string The property changed.
validationType ValidationType Type of the validation.
Результат string>.Dictionary
        private static Dictionary<string, string> CheckFieldWarningsOrErrors(object value, string propertyChanged, ValidationType validationType)
        {
            var warningsOrErrors = new Dictionary<string, string>();

            var model = value as IModel;
            if (model != null)
            {
                // Respect IsHidingValidationResults
                if (model.IsHidingValidationResults)
                {
                    return warningsOrErrors;
                }

                // Read all data from validation context
                var validationContext = model.ValidationContext;
                var fieldValidationResults = new List<IFieldValidationResult>();

                switch (validationType)
                {
                    case ValidationType.Warning:
                        fieldValidationResults = validationContext.GetFieldWarnings();
                        break;

                    case ValidationType.Error:
                        fieldValidationResults = validationContext.GetFieldErrors();
                        break;
                }

                foreach (var fieldValidationResult in fieldValidationResults)
                {
                    warningsOrErrors[fieldValidationResult.PropertyName] = fieldValidationResult.Message;
                }

                return warningsOrErrors;
            }

            var iDataWarningInfo = value as IDataWarningInfo;
            if ((validationType == ValidationType.Warning) && (iDataWarningInfo == null))
            {
                return warningsOrErrors;
            }

            var iDataErrorInfo = value as IDataErrorInfo;
            if ((validationType == ValidationType.Error) && (iDataErrorInfo == null))
            {
                return warningsOrErrors;
            }

            var propertiesToCheck = new List<string>();
            if (!string.IsNullOrEmpty(propertyChanged))
            {
                propertiesToCheck.Add(propertyChanged);
            }
            else
            {
                var type = value.GetType();
                var properties = type.GetPropertiesEx();
                foreach (var property in properties)
                {
                    propertiesToCheck.Add(property.Name);
                }
            }

            foreach (string property in propertiesToCheck)
            {
                string warningOrError = string.Empty;
                switch (validationType)
                {
                    case ValidationType.Warning:
                        // ReSharper disable PossibleNullReferenceException
                        warningOrError = iDataWarningInfo[property];
                        // ReSharper restore PossibleNullReferenceException
                        break;

                    case ValidationType.Error:
                        // ReSharper disable PossibleNullReferenceException
                        warningOrError = iDataErrorInfo[property];
                        // ReSharper restore PossibleNullReferenceException
                        break;
                }

                if (!string.IsNullOrEmpty(warningOrError))
                {
                    warningsOrErrors[property] = warningOrError;
                }
            }

            return warningsOrErrors;
        }