Esempio n. 1
0
        public static List <Task> CreateByPropertyName(IValidatableSchema entity,
                                                       PropertyInfo[] properties,
                                                       string propertyName,
                                                       string[] rules,
                                                       ValidationResult result)
        {
            ValidateRulesAndResultObject(rules, result);

            var property = properties.FirstOrDefault(p => p.Name.Equals(propertyName));
            var tasks    = new List <Task>();

            ValidateProperty(propertyName, property);
            var propertyValue = property.GetValue(entity);


            foreach (var rule in rules)
            {
                switch (rule)
                {
                case RuleName.REQUIRED:
                    tasks.Add(new Task(() => result.Add(CommonValidations.IsRequired(property, propertyValue))));
                    break;

                case string r when r.Contains(RuleName.MIN):
                    tasks.Add(new Task(() => result.Add(CreateValidationForMin(property, propertyValue, rule))));

                    break;

                case string r when r.Contains(RuleName.MAX):
                    tasks.Add(new Task(() => result.Add(CreateValidationForMax(property, propertyValue, rule))));

                    break;

                case string r when r.Contains(RuleName.GUID):
                    tasks.Add(new Task(() => result.Add(CreateValidationForGuid(property, propertyValue, rule))));

                    break;

                case RuleName.EMAIL:
                    tasks.Add(new Task(() => result.Add(EmailValidations.IsEmail(property, propertyValue))));
                    break;

                case RuleName.CNPJ:
                    tasks.Add(new Task(() => result.Add(CnpjValidations.IsCnpj(property, propertyValue))));
                    break;

                case RuleName.CPF:
                    tasks.Add(new Task(() => result.Add(CpfValidations.IsCpf(property, propertyValue))));
                    break;

                default:
                    throw new RuleNotSupportedException(rule);
                }
            }

            return(tasks);
        }
Esempio n. 2
0
 public bool IsEmailValid(string email)
 {
     if (!IsUserNameAvailable(email))
     {
         throw new Exception("Email already registered");
     }
     if (!EmailValidations.IsValid(email))
     {
         throw new Exception("Email is not valid");
     }
     return(true);
 }