Ejemplo n.º 1
0
        public Cliente AdicionarCliente(Cliente clienteNovo)
        {
            var documentoSemFormatacao = FormataDocumento(clienteNovo.CPF);

            var clienteExistente = _repoCliente.GetAsync(c => c.CPF == documentoSemFormatacao).Result.FirstOrDefault();

            if (clienteExistente != null)
            {
                throw new ClienteJaCadastradoException("Cliente já existente com este CPF!");
            }

            clienteNovo.ClienteId    = Guid.NewGuid();
            clienteNovo.DataCadastro = DateTime.Now;
            clienteNovo.CPF          = documentoSemFormatacao;

            var mensagensValidacao = ValidacaoHelper.ValidateModel(clienteNovo);

            if (mensagensValidacao.Any())
            {
                throw new EntidadeInvalidaException(string.Join(",", mensagensValidacao));
            }

            _repoCliente.Add(clienteNovo);
            _repoCliente.SaveChangesAsync();
            return(clienteNovo);
        }
        /// <summary>
        /// Validação server
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public override bool IsValid(object value)
        {
            if (value == null || string.IsNullOrEmpty(value.ToString()))
            {
                return(true);
            }

            return(ValidacaoHelper.ValidaCPF(value.ToString()));
        }
Ejemplo n.º 3
0
 void ValidarAvaliacao(Avaliacao avaliacao)
 {
     if (avaliacao == null)
     {
         throw new Exception("Avaliação não pode ser nula");
     }
     ValidacaoHelper.ValidaString(avaliacao.Nome);
     ValidarNumeros(avaliacao.NotaMaxima);
     ValidarNumeros(avaliacao.Peso);
 }
Ejemplo n.º 4
0
        public void Cliente_Validacao_Sucesso()
        {
            var novoCliente = new Cliente()
            {
                CPF          = "43553936827",
                Nome         = "Vittoria Zago",
                DataCadastro = DateTime.Now,
                ClienteId    = Guid.NewGuid()
            };

            Assert.AreEqual(0, ValidacaoHelper.ValidateModel(novoCliente).Count);
        }
Ejemplo n.º 5
0
        public ClienteMovimentacao AdicionarClienteMovimentacao(ClienteMovimentacao movimentacaoNova)
        {
            var clienteExistente = _repoCliente.GetAsync(c =>
                                                         c.ClienteId == movimentacaoNova.ClienteId).Result.FirstOrDefault();

            if (clienteExistente == null)
            {
                throw new ClienteNaoEncontradoException("Cliente não encontrado!");
            }

            var lojaExistente = _repoLoja.GetAsync(c => c.Ativo &&
                                                   c.LojaId == movimentacaoNova.LojaId).Result.FirstOrDefault();

            if (lojaExistente == null)
            {
                throw new LojaNaoEncontradaException("Loja não encontrada!");
            }

            var valorFinal = clienteExistente.SaldoAtual ?? 0;

            if (movimentacaoNova.Operacao == Models.Enums.Operacao.Debito)
            {
                valorFinal -= movimentacaoNova.Valor;
            }
            else
            {
                valorFinal += movimentacaoNova.Valor;
            }

            if (valorFinal < 0)
            {
                throw new SaldoInsuficienteException("Cliente sem saldo suficiente!");
            }

            movimentacaoNova.SaldoAtual            = valorFinal;
            movimentacaoNova.ClienteMovimentacaoId = Guid.NewGuid();
            movimentacaoNova.DataOperacao          = DateTime.Now;

            var mensagensValidacao = ValidacaoHelper.ValidateModel(movimentacaoNova);

            if (mensagensValidacao.Any())
            {
                throw new EntidadeInvalidaException(string.Join(",", mensagensValidacao));
            }

            _repoClienteMovimentacaoe.Add(movimentacaoNova);
            _repoClienteMovimentacaoe.SaveChangesAsync();
            return(movimentacaoNova);
        }
Ejemplo n.º 6
0
        public void Cliente_Validacao_Falha()
        {
            var novoCliente = new Cliente()
            {
                Nome         = "Vittoria Zago",
                DataCadastro = DateTime.Now,
                ClienteId    = Guid.NewGuid()
            };

            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
            novoCliente = new Cliente()
            {
                CPF          = "43553936827",
                DataCadastro = DateTime.Now,
                ClienteId    = Guid.NewGuid()
            };
            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
            novoCliente = new Cliente()
            {
                CPF          = "43553936827980802388374390",
                DataCadastro = DateTime.Now,
                Nome         = "Vittoria Zago",
                ClienteId    = Guid.NewGuid()
            };
            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
            novoCliente = new Cliente()
            {
                CPF       = "43553936827",
                Nome      = "Vittoria Zago",
                ClienteId = Guid.NewGuid()
            };
            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
            novoCliente = new Cliente()
            {
                CPF          = "43553936827",
                Nome         = "Vittoria Zago",
                DataCadastro = DateTime.Today.AddDays(5),
                ClienteId    = Guid.NewGuid()
            };
            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
            novoCliente = new Cliente()
            {
                CPF          = "43553936827",
                Nome         = "Vittoria Zago",
                DataCadastro = DateTime.Now,
            };
            Assert.AreEqual(1, ValidacaoHelper.ValidateModel(novoCliente).Count);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Altera um cliente
        /// </summary>
        /// <param name="cliente">Objeto de cliente</param>
        public void Alterar(DML.Cliente cliente)
        {
            DAL.DaoCliente cli = new DAL.DaoCliente();

            if (!ValidacaoHelper.ValidaCPF(cliente.CPF))
            {
                throw new Exception($"O CPF do cliente [{cliente.Nome.ToUpper()}] não está correto!");
            }

            if (VerificarExistencia(cliente.CPF, cliente.Id))
            {
                throw new Exception($"Já existe um cliente com o CPF informado!");
            }

            cli.Alterar(cliente);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Inclui um novo cliente
        /// </summary>
        /// <param name="cliente">Objeto de cliente</param>
        public long Incluir(DML.Cliente cliente)
        {
            DAL.DaoCliente cli = new DAL.DaoCliente();

            if (!ValidacaoHelper.ValidaCPF(cliente.CPF))
            {
                throw new Exception("Informe um CPF válido!");
            }

            if (VerificarExistencia(cliente.CPF, cliente.Id))
            {
                throw new Exception("O CPF informado já está cadastrado!");
            }

            foreach (Beneficiario beneficiario in cliente.Beneficiarios)
            {
                if (!ValidacaoHelper.ValidaCPF(beneficiario.CPF))
                {
                    throw new Exception($"Informe um CPF válido para o beneficiário [{beneficiario.Nome}]!");
                }
            }

            return(cli.Incluir(cliente));
        }
Ejemplo n.º 9
0
        public JsonResult Incluir(ClienteModel model)
        {
            BoCliente bo = new BoCliente();

            if (this.ModelState.IsValid)
            {
                if (!ValidacaoHelper.IsCpf(model.CPF))
                {
                    this.ModelState.AddModelError("CPF", "Digite um CPF válido");
                }
                else if (bo.VerificarExistencia(model.CPF))
                {
                    this.ModelState.AddModelError("CPF", "CPF já cadastrado");
                }
                else if (model.Beneficiarios != null)
                {
                    foreach (BeneficiarioModel beneficiario in model.Beneficiarios)
                    {
                        if (!ValidacaoHelper.IsCpf(beneficiario.CPF))
                        {
                            this.ModelState.AddModelError("Beneficiario[CPF]", string.Format("CPF do beneficiário inválido: {0} - {1}",
                                                                                             beneficiario.CPF,
                                                                                             beneficiario.Nome));
                            break;
                        }
                    }

                    if (model.Beneficiarios.GroupBy(b => b.CPF).Any(b => b.Count() > 1))
                    {
                        this.ModelState.AddModelError("Beneficiario[CPF]", "CPF do beneficiário em duplicidade");
                    }
                }
            }

            if (!this.ModelState.IsValid)
            {
                List <string> erros = (from item in ModelState.Values
                                       from error in item.Errors
                                       select error.ErrorMessage).ToList();

                Response.StatusCode = 400;
                return(Json(string.Join(Environment.NewLine, erros)));
            }
            else
            {
                List <Beneficiario> beneficiarios = new List <Beneficiario>();
                if (model.Beneficiarios != null)
                {
                    beneficiarios = model.Beneficiarios.Select(item => new Beneficiario()
                    {
                        Nome = item.Nome,
                        CPF  = item.CPF
                    }).ToList();
                }

                model.Id = bo.Incluir(new Cliente()
                {
                    CEP           = model.CEP,
                    Cidade        = model.Cidade,
                    Email         = model.Email,
                    Estado        = model.Estado,
                    Logradouro    = model.Logradouro,
                    Nacionalidade = model.Nacionalidade,
                    Nome          = model.Nome,
                    Sobrenome     = model.Sobrenome,
                    CPF           = model.CPF,
                    Telefone      = model.Telefone,
                    Beneficiarios = beneficiarios
                });


                return(Json("Cadastro efetuado com sucesso"));
            }
        }