Esempio n. 1
0
        public async Task <IActionResult> CadastrarConta([FromBody, SwaggerParameter("Informações de cadastro da conta.", Required = true)] ContaViewModel model)
        {
            var entrada = new ContaEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.Tipo,
                model.ValorSaldoInicial,
                model.NomeInstituicao,
                model.NumeroAgencia,
                model.Numero);

            return(new ApiResult(await _contaServico.CadastrarConta(entrada)));
        }
Esempio n. 2
0
        public void Alterar(ContaEntrada entrada)
        {
            if (entrada.Invalido)
            {
                return;
            }

            this.Nome = entrada.Nome;
            this.Tipo = entrada.Tipo;
            this.ValorSaldoInicial = entrada.ValorSaldoInicial;
            this.NomeInstituicao   = entrada.NomeInstituicao;
            this.NumeroAgencia     = entrada.NumeroAgencia;
            this.Numero            = entrada.Numero;
        }
Esempio n. 3
0
        public Conta(ContaEntrada entrada)
            : this()
        {
            if (entrada.Invalido)
            {
                return;
            }

            this.IdUsuario         = entrada.IdUsuario;
            this.Nome              = entrada.Nome;
            this.Tipo              = entrada.Tipo;
            this.ValorSaldoInicial = entrada.ValorSaldoInicial.HasValue && entrada.ValorSaldoInicial.Value == 0 ? null : entrada.ValorSaldoInicial;
            this.NomeInstituicao   = entrada.NomeInstituicao;
            this.NumeroAgencia     = entrada.NumeroAgencia;
            this.Numero            = entrada.Numero;
        }
Esempio n. 4
0
        public async Task <ISaida> AlterarConta(int idConta, ContaEntrada entrada)
        {
            // Verifica se as informações para alteração foram informadas corretamente
            if (entrada.Invalido)
            {
                return(new Saida(false, entrada.Mensagens, null));
            }

            var conta = await _contaRepositorio.ObterPorId(idConta);

            // Verifica se a conta existe
            this.NotificarSeNulo(conta, string.Format(ContaMensagem.Id_Conta_Nao_Existe, idConta));

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

            // Verifica se a conta pertece ao usuário informado.
            this.NotificarSeDiferentes(conta.IdUsuario, entrada.IdUsuario, ContaMensagem.Conta_Alterar_Nao_Pertence_Usuario);

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

            // Verifica se o usuário já possui alguma conta com o nome informado
            this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(entrada.IdUsuario, entrada.Nome, idConta), ContaMensagem.Conta_Com_Mesmo_Nome);

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

            conta.Alterar(entrada);

            _contaRepositorio.Atualizar(conta);

            await _uow.Commit();

            return(new Saida(true, new[] { ContaMensagem.Conta_Alterada_Com_Sucesso }, new ContaSaida(conta, await CalcularSaldoDisponivelAtual(conta))));
        }
Esempio n. 5
0
        public async Task <ISaida> CadastrarConta(ContaEntrada entrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (entrada.Invalido)
            {
                return(new Saida(false, entrada.Mensagens, null));
            }

            // Verifica se o usuário já possui alguma conta com o nome informado
            this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(entrada.IdUsuario, entrada.Nome), ContaMensagem.Conta_Com_Mesmo_Nome);

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

            var conta = new Conta(entrada);

            await _contaRepositorio.Inserir(conta);

            await _uow.Commit();

            return(new Saida(true, new[] { ContaMensagem.Conta_Cadastrada_Com_Sucesso }, new ContaSaida(conta, conta.ValorSaldoInicial)));
        }