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);
        }
Ejemplo n.º 2
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.º 3
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.º 4
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);
        }