Example #1
0
        public ValidationError SetError(string propertyName, string errorMessage)
        {
            var error = Errors.FirstOrDefault(e => e.PropertyName == propertyName);

            if (error == null)
            {
                if (!string.IsNullOrEmpty(errorMessage))
                {
                    error = new ValidationError(propertyName, errorMessage);
                    Errors.Add(error);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(errorMessage) && string.IsNullOrEmpty(error.ErrorMessage))
                {
                    Errors.Remove(error);
                    error = null;
                }
                else
                {
                    //if (error.ErrorMessage == errorMessage) return error;
                    error.ErrorMessage = errorMessage;
                }
            }
            if (string.IsNullOrWhiteSpace(error?.ErrorMessage))
            {
                Errors.Remove(error);
            }
            ValidatableEntity?.NotifyErrorChanged(propertyName);
            if (string.IsNullOrWhiteSpace(error?.ErrorMessage))
            {
                return(null);
            }
            return(error);
        }
Example #2
0
        public IEnumerable <ValidationError> Validate()
        {
            var errors     = Entity.Validate();
            var properties = errors.Select(e => e.PropertyName).Concat(Errors.Select(e => e.PropertyName)).Distinct().ToList();

            Errors.Clear();
            Errors.AddRange(errors);
            if (ValidatableEntity != null)
            {
                foreach (var item in properties)
                {
                    ValidatableEntity.NotifyErrorChanged(item);
                }
            }
            return(Errors.ToList());
        }