validate static method

bool validate(
  1. List<ValidatorModel> lstvalidate
)

Implementation

static bool validate(List<ValidatorModel> lstvalidate) {
  bool blnOk = true;
  String password1 = "";
  String password2 = "";
  var passwordConf;
  var password;

  try {
    for (var validate in lstvalidate) {
      validate.error.value = "";
      switch (validate.type) {
        case Constant.kdTpValidName:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.value!.length < 3) {
            validate.error.value = validate.messageError == null
                ? 'Nome inválido'
                : validate.messageError!;
          } else {
            List<String> lstName = validate.value!.split(' ');
            if (lstName.length < 2) {
              validate.error.value = validate.messageError == null
                  ? 'Nome inválido'
                  : validate.messageError!;
            }
          }
          break;

        case Constant.kdTpValidCity:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.value!.length < 3) {
            validate.error.value = validate.messageError == null
                ? 'Cidade inválida'
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidEmail:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (!email(validate.value!)) {
            validate.error.value = validate.messageError == null
                ? 'E-mail inválido'
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidPhone:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (!phone(
              validate.value!.replaceAll(RegExp(r'[()\-/\.]'), ''))) {
            validate.error.value = validate.messageError == null
                ? 'Telefone inválido'
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidInt:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (int.parse(validate.value!) == 0) {
            validate.error.value = validate.messageError!;
          }
          break;

        case Constant.kdTpValidCEP:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.value!
                  .replaceAll(RegExp(r'[()\-/\.]'), '')
                  .length !=
              8) {
            validate.error.value = validate.messageError == null
                ? 'C.E.P. inválido'
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidText:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.size != null &&
              validate.value!.length < validate.size!) {
            validate.error.value = validate.messageError!;
          }
          break;

        case Constant.kdTpValidDate:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (!DateTimeUtil.isValidDate(validate.value!)) {
            validate.error.value = validate.messageError == null
                ? "Data inválida"
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidCPF:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (!cpf(
              validate.value!.replaceAll(RegExp(r'[()\-/\.]'), ''))) {
            validate.error.value = validate.messageError == null
                ? "C.P.F. inválido"
                : validate.messageError!;
          }
          break;

        case Constant.kdTpValidPasswordConf:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.value!.length < 8) {
            validate.error.value = "A senha deve conter no minímo 8 digitos";
          } else {
            if (password1.isEmpty) {
              password1 = validate.value!;
              password = validate.error;
            } else {
              password2 = validate.value!;
              passwordConf = validate.error;
            }
          }

          if (password1.isNotEmpty && password2.isNotEmpty) {
            if (password1 != password2) {
              passwordConf.value = "A confirmação da senha não confere";
              blnOk = false;
            }
          }
          break;

        case Constant.kdTpValidPassword:
          if (validate.value == null || validate.value!.isEmpty) {
            validate.error.value = 'Campo obrigatório';
          } else if (validate.value!.length < 8) {
            validate.error.value = "A senha deve conter no minímo 8 digitos";
          } else {
            password1 = validate.value!;
          }
      }

      if (validate.error.value.isNotEmpty) {
        blnOk = false;
      }
    }
  } catch (ex) {
    errorDescription = ex.toString();
    blnOk = false;
  }
  return blnOk;
}