public EnderecoValidatorTest()
 {
     this.validations = new EnderecoValidator();
     endereco         = new Endereco
     {
         Bairro       = "TESTE",
         CEP          = "TESTE",
         Cidade       = "TESTE",
         Numero       = 1,
         Estado       = "SP",
         Logradouro   = "TESTE",
         Principal    = true,
         TipoEndereco = TipoEndereco.Residencial
     };
 }
Ejemplo n.º 2
0
        public void UsuarioIDNulo()
        {
            EnderecoValidator validator = new EnderecoValidator();

            Endereco endereco = new Endereco()
            {
                EnderecoID  = 1,
                CEP         = "38970-000",
                Estado      = "MG",
                Cidade      = "Campos Claros",
                Bairro      = "Gato",
                Rua         = "Francisco dos Santos",
                Numero      = "326",
                Complemento = "Uma casa muito engraçada, sem teto sem nada."
            };

            var resultado = validator.Validate(endereco);

            Assert.AreEqual(false, resultado.IsValid);
        }
Ejemplo n.º 3
0
        public void ComplementoLimiteCaracteres()
        {
            EnderecoValidator validator = new EnderecoValidator();

            Endereco endereco = new Endereco()
            {
                EnderecoID  = 1,
                UsuarioID   = 1,
                CEP         = "38970000",
                Estado      = "MG",
                Cidade      = "Campos Claros",
                Bairro      = "Dona Aranha",
                Rua         = "Rua dos Eita",
                Numero      = "326",
                Complemento = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
            };

            var resultado = validator.Validate(endereco);

            Assert.AreEqual(false, resultado.IsValid);
        }
Ejemplo n.º 4
0
        public void NumeroVazio()
        {
            EnderecoValidator validator = new EnderecoValidator();

            Endereco endereco = new Endereco()
            {
                EnderecoID  = 1,
                UsuarioID   = 1,
                CEP         = "38970000",
                Estado      = "MG",
                Cidade      = "Campos Claros",
                Bairro      = "Dona Aranha",
                Rua         = "Rua dos Eita",
                Numero      = "",
                Complemento = "Uma casa muito engraçada, sem teto sem nada."
            };

            var resultado = validator.Validate(endereco);

            Assert.AreEqual(false, resultado.IsValid);
        }
Ejemplo n.º 5
0
        public async Task Create(FornecedorDTO fornecedor)
        {
            var resposta = fornecedor.CNPJ.IsValidCNPJ();

            if (resposta != "")
            {
                base.AddError("CNPJ", resposta);
            }

            List <Error> errors = new EnderecoValidator().Validate(fornecedor.Endereco);

            //Adiciona os erros do endereco nos erros do fornecedor (caso encontre)
            foreach (Error erroDoEndereco in errors)
            {
                base.AddError(erroDoEndereco.FieldName, erroDoEndereco.Message);
            }

            CheckErrors();

            try
            {
                await repository.Create(fornecedor);
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException.InnerException.Message.Contains("UQ"))
                {
                    List <Error> error = new List <Error>();
                    error.Add(new Error()
                    {
                        FieldName = "CNPJ", Message = "CNPJ já cadastrado"
                    });
                    throw new NecoException(error);
                }
                //Log.Write("erro 666 " + ex.StackTrace);
                throw new Exception("Erro no banco de dados.");
            }
        }
Ejemplo n.º 6
0
        //private IFornecedorRepository fornecedorRepository;
        //public FornecedorService(IFornecedorRepository repository)
        //{
        //    this.fornecedorRepository = repository;
        //}
        public async Task Create(FornecedorDTO fornecedor)
        {
            #region VALIDAÇÃO NOME FORNECEDOR
            if (string.IsNullOrWhiteSpace(fornecedor.Fornecedor))
            {
                base.AddError("O nome do fornecedor deve ser informado.", "Fornecedor");
            }
            else
            {
                fornecedor.Fornecedor = fornecedor.Fornecedor.Trim();
                if (fornecedor.Fornecedor.Length < 5 || fornecedor.Fornecedor.Length > 40)
                {
                    base.AddError("O nome do fornecedor deve conter entre 5 e 40 caracteres.", "Descricao");
                }
            }
            #endregion

            #region VALIDAÇÃO DO ENDEREÇO

            List <Error> errors = new EnderecoValidator().Validate(fornecedor.Endereco);

            foreach (Error erroDoEndereco in errors)
            {
                base.AddError(erroDoEndereco.FieldName, erroDoEndereco.Message);
            }

            #endregion

            #region VALIDAÇÃO CNPJ
            //Estilo AMBEV
            var resposta = fornecedor.CNPJ.IsValidCNPJ();

            if (resposta != "")
            {
                base.AddError("CNPJ", resposta);
            }



            #endregion

            #region VALIDAÇÃO EMAIL
            if (string.IsNullOrWhiteSpace(fornecedor.Email))
            {
                base.AddError("O email deve ser informado.", "Email");
            }
            else
            {
                fornecedor.Email = fornecedor.Email.Trim();
            }
            #endregion

            #region VERIFICAÇÃO DE ERROS
            base.CheckErrors();
            try
            {
                using (SSContext context = new SSContext())
                {
                    context.Fornecedor.Add(fornecedor);
                    await context.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
                throw new Exception("Erro no banco de dados, contate do administrador.");
            }
            #endregion

            CheckErrors();

            try
            {
                FornecedorRepository repository = new FornecedorRepository();
                await repository.Create(fornecedor);
            }
            catch (Exception ex)
            {
                //Exemplo curto circuito, se a primeira expressão for false o C# não chega nem a ler a segunda expressão. PERIGOSO!
                if (ex.InnerException != null && ex.InnerException.InnerException.Message.Contains("UQ"))
                {
                    List <Error> error = new List <Error>();
                    error.Add(new Error()
                    {
                        FieldName = "CNPJ", Message = "CNPJ já cadastrado!"
                    });
                    throw new NecoException(error);
                }
                File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
                throw new Exception("Erro no banco de dados, contate o adiminstrador. ");
            }
        }