public async Task <ISaida> CadastrarConta(CadastrarContaEntrada 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 alguma conta com o nome informado
            this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(cadastroEntrada.IdUsuario, cadastroEntrada.Nome), ContaMensagem.Conta_Com_Mesmo_Nome);

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

            var conta = new Conta(cadastroEntrada);

            await _contaRepositorio.Inserir(conta);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { ContaMensagem.Conta_Cadastrada_Com_Sucesso }, new ContaSaida(conta)));
        }
Exemple #2
0
        public void Nao_Deve_Cadastrar_Conta_Com_Parametros_Invalidos()
        {
            var cadastroEntrada = new CadastrarContaEntrada(0, string.Empty, TipoConta.ContaCorrente);

            _contaServico = Substitute.For <ContaServico>(_contaRepositorio, _uow);

            var saida = _contaServico.CadastrarConta(cadastroEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == ContaMensagem.Nome_Obrigatorio_Nao_Informado), string.Join(", ", saida.Mensagens));
        }
        public async Task <ISaida> CadastrarConta([FromBody, SwaggerParameter("Informações de cadastro da conta.", Required = true)] CadastrarContaViewModel model)
        {
            var cadastrarEntrada = new CadastrarContaEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.Tipo.Value,
                model.ValorSaldoInicial,
                model.NomeInstituicao,
                model.NumeroAgencia,
                model.Numero);

            return(await _contaServico.CadastrarConta(cadastrarEntrada));
        }
Exemple #4
0
        public void Nao_Deve_Cadastrar_Conta_Com_Mesmo_Nome_De_Outra_Conta()
        {
            var idUsuario = 1;

            _contaRepositorio.VerificarExistenciaPorNome(idUsuario, "Conta 1")
            .Returns(true);

            var cadastroEntrada = new CadastrarContaEntrada(idUsuario, "Conta 1", TipoConta.ContaCorrente);

            _contaServico = Substitute.For <ContaServico>(_contaRepositorio, _uow);

            var saida = _contaServico.CadastrarConta(cadastroEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == ContaMensagem.Conta_Com_Mesmo_Nome), string.Join(", ", saida.Mensagens));
        }
Exemple #5
0
        public Conta(CadastrarContaEntrada cadastrarEntrada)
            : this()
        {
            if (cadastrarEntrada.Invalido)
            {
                return;
            }

            this.IdUsuario         = cadastrarEntrada.IdUsuario;
            this.Nome              = cadastrarEntrada.Nome;
            this.Tipo              = cadastrarEntrada.Tipo;
            this.ValorSaldoInicial = cadastrarEntrada.ValorSaldoInicial;
            this.NomeInstituicao   = cadastrarEntrada.NomeInstituicao;
            this.NumeroAgencia     = cadastrarEntrada.NumeroAgencia;
            this.Numero            = cadastrarEntrada.Numero;
        }