public async Task <ISaida> CadastrarCartaoCredito(CadastrarCartaoCreditoEntrada cadastroEntrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (cadastroEntrada.Invalido)
            {
                return(new Saida(false, cadastroEntrada.Mensagens, null));
            }

            // Verifica se o usuário já possui algum cartão com o nome informado
            this.NotificarSeVerdadeiro(await _cartaoCreditoRepositorio.VerificarExistenciaPorNome(cadastroEntrada.IdUsuario, cadastroEntrada.Nome), CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var cartao = new CartaoCredito(cadastroEntrada);

            await _cartaoCreditoRepositorio.Inserir(cartao);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Cadastrado_Com_Sucesso }, new CartaoCreditoSaida(cartao)));
        }
Пример #2
0
        public async Task <ISaida> CadastrarCartaoCredito([FromBody, SwaggerParameter("Informações de cadastro do cartão.", Required = true)] CadastrarCartaoCreditoViewModel model)
        {
            var cadastrarEntrada = new CadastrarCartaoCreditoEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.ValorLimite.Value,
                model.DiaVencimentoFatura.Value);

            return(await _cartaoCreditoServico.CadastrarCartaoCredito(cadastrarEntrada));
        }
Пример #3
0
        public void Nao_Deve_Cadastrar_Cartao_Credito_Com_Parametros_Invalidos()
        {
            var cadastroEntrada = new CadastrarCartaoCreditoEntrada(0, string.Empty, -5000, 33);

            _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow);

            var saida = _cartaoCreditoServico.CadastrarCartaoCredito(cadastroEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == CartaoCreditoMensagem.Nome_Obrigatorio_Nao_Informado), string.Join(", ", saida.Mensagens));
        }
Пример #4
0
        public CartaoCredito(CadastrarCartaoCreditoEntrada cadastrarEntrada)
            : this()
        {
            if (cadastrarEntrada.Invalido)
            {
                return;
            }

            this.IdUsuario           = cadastrarEntrada.IdUsuario;
            this.Nome                = cadastrarEntrada.Nome;
            this.ValorLimite         = cadastrarEntrada.ValorLimite;
            this.DiaVencimentoFatura = cadastrarEntrada.DiaVencimentoFatura;
        }
Пример #5
0
        public void Nao_Deve_Cadastrar_Cartao_Credito_Com_Mesmo_Nome_De_Outra_CartaoCredito()
        {
            var idUsuario = 1;

            _cartaoCreditoRepositorio.VerificarExistenciaPorNome(idUsuario, "Cartão 1")
            .Returns(true);

            var cadastroEntrada = new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5);

            _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow);

            var saida = _cartaoCreditoServico.CadastrarCartaoCredito(cadastroEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome), string.Join(", ", saida.Mensagens));
        }