Exemplo n.º 1
0
        // ADICIONAR
        public async Task <HistoricoDto> Add(HistoricoDto historicoDto)
        {
            var historico = _map.Map <Historico>(historicoDto);

            _repo.Add(historico);
            if (await _repo.SaveAsync())
            {
                return(_map.Map <HistoricoDto>(historico));
            }
            throw new ArgumentException("Erro ao persitir no banco!");
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RegistrarHistorico(HistoricoDto historicoDto)
        {
            var edicao = await contexto.Edicoes
                         .Include(x => x.Historicos)
                         .FirstOrDefaultAsync(x => x.Status == StatusDaEdicao.Aberta);

            edicao.RegistrarHistorico(historicoDto);

            await contexto.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 3
0
        // REALIZAR SAQUE
        public async Task <ContaDto> Saque(HelperContaDto contaSaque)
        {
            var conta = await _repo.GetByAgenciaAndContaCorrente(contaSaque.Agencia, contaSaque.Conta);

            if (conta == null || conta.Saldo <= 0)
            {
                throw new NotFoundException("Nenhumca conta encontrada e/ou saldo insuficiente!");
            }

            bool senhaConfere = CompareSenha(contaSaque.Senha, conta.Senha);

            if (!senhaConfere)
            {
                throw new ArgumentException("Senha incorreta!");
            }

            conta.Saldo -= contaSaque.Quantia;

            _repo.Update(conta);
            if (await _repo.SaveAsync())
            {
                // INSERT NO HISTORICO
                HistoricoDto historicoDto = new HistoricoDto
                {
                    DescricaoTransacao = "SAQUE CONTA CORRENTE",
                    DigitosConta       = conta.DigitosConta,
                    DigitosAgencia     = conta.DigitosAgencia,
                    TipoConta          = 0,
                    Valor         = contaSaque.Quantia,
                    DataTransacao = DateTime.Now,
                    NomeConta     = conta.NomeConta,
                    Operacao      = 0,
                };
                // SERVICE ADD DO HISTORICO
                var historicoAdd = await _historicoServices.Add(historicoDto);

                // INSERT EM HISTORICOCONTAS
                HistoricosContasDto historicosContasDto = new HistoricosContasDto
                {
                    ContaId     = conta.Id,
                    HistoricoId = historicoAdd.Id,
                    DataCriacao = DateTime.Now
                };
                var addHistoricosContas = _map.Map <HistoricosContas>(historicosContasDto);
                _repoHistoricosContas.Add(addHistoricosContas);
                if (await _repoHistoricosContas.SaveAsync())
                {
                    return(_map.Map <ContaDto>(conta));
                }
            }
            // SE SAIR DE TODOS IF E PQ DEU ERRO AO PERSISTIR DADOS
            throw new ArgumentException("Erro ao persitir dados no banco!");
        }
Exemplo n.º 4
0
        // REALIZAR DEPOSITO
        public async Task <ContaDto> Depositar(HelperContaDto contaDto)
        {
            // OBTER A CONTA CORRENTE
            var conta = await _repo.GetByAgenciaAndContaCorrente(contaDto.Agencia, contaDto.Conta);

            if (conta == null)
            {
                throw new NotFoundException("Nehuma conta encontrada!!");
            }

            bool senhaConfere = CompareSenha(contaDto.Senha, conta.Senha);

            if (!senhaConfere)
            {
                throw new ArgumentException("Senha incorreta!");
            }

            conta.Saldo += contaDto.Quantia;

            _repo.Update(conta);
            if (await _repo.SaveAsync())
            {
                HistoricoDto historicoDto = new HistoricoDto
                {
                    DataTransacao      = DateTime.Now,
                    TipoConta          = 0,
                    DescricaoTransacao = "DEPOSITO EM CONTA CONRRENTE",
                    DigitosAgencia     = conta.DigitosAgencia,
                    DigitosConta       = conta.DigitosConta,
                    Valor     = contaDto.Quantia,
                    NomeConta = conta.NomeConta,
                    Operacao  = 1
                };

                var addHistorico = await _historicoServices.Add(historicoDto);

                HistoricosContasDto historicosContasDto = new HistoricosContasDto
                {
                    ContaId     = conta.Id,
                    DataCriacao = DateTime.Now,
                    HistoricoId = addHistorico.Id
                };
                var historicosContas = _map.Map <HistoricosContas>(historicosContasDto);
                _repoHistoricosContas.Add(historicosContas);

                if (await _repoHistoricosContas.SaveAsync())
                {
                    return(_map.Map <ContaDto>(conta));
                }
            }
            throw new ArgumentException("Erro ao persistir no banco");
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Add(HistoricoDto historicoDto)
        {
            try
            {
                var addHistorico = await _service.Add(historicoDto);

                return(Created($"/api/historico/{addHistorico.Id}", addHistorico));
            }
            catch (ArgumentException e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"${e.Message}"));
            }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Update(HistoricoDto historicoDto)
        {
            try
            {
                var updateHistorico = await _service.Update(historicoDto);

                return(Ok(updateHistorico));
            }
            catch (NotFoundException e)
            {
                return(this.StatusCode(StatusCodes.Status404NotFound, $"${e.Message}"));
            }
            catch (ArgumentException e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"${e.Message}"));
            }
        }
Exemplo n.º 7
0
        // ATUALIZAR
        public async Task <HistoricoDto> Update(HistoricoDto historicoDto)
        {
            var historico = await _repo.GetByIdAsync(historicoDto.Id);

            if (historico == null)
            {
                throw new NotFoundException("Nenhum extrato encontrado com esse id!");
            }

            _map.Map(historico, historicoDto);
            _repo.Update(historico);
            if (await _repo.SaveAsync())
            {
                return(_map.Map <HistoricoDto>(historico));
            }
            throw new ArgumentException("Erro ao persitir no banco!");
        }
Exemplo n.º 8
0
        public void RegistrarHistorico(HistoricoDto historicoDto)
        {
            var historico = new Historico(historicoDto.TimeId, historicoDto.CartaId, historicoDto.Observacao, this);

            this.Historicos.Add(historico);
        }
Exemplo n.º 9
0
        // REALIZAR APLICACAO NA POUPANCA
        public async Task <ContaDto> ResgatarPoupanca(HelperContaDto contaDto)
        {
            // CONTA CORRENTE
            var contaCorrente = await _repo.GetByAgenciaAndContaCorrente(contaDto.Agencia, contaDto.Conta);

            // CONTA POUPANCA
            var contaPoupanca = await _repo.GetByAgenciaAndContaPoupanca(contaDto.Agencia, contaDto.Conta);

            if (contaCorrente == null && contaPoupanca == null)
            {
                throw new NotFoundException("Conta corrente e/ou Conta Poupanca não encontrada!");
            }
            else if (contaPoupanca.Saldo < contaDto.Quantia)
            {
                throw new NotFoundException("Saldo insuficiente!");
            }


            bool senhaConfere = CompareSenha(contaDto.Senha, contaPoupanca.Senha);

            if (!senhaConfere)
            {
                throw new ArgumentException("Senha incorreta!");
            }

            contaCorrente.Saldo += contaDto.Quantia;
            contaPoupanca.Saldo -= contaDto.Quantia;

            List <Conta> contas = new List <Conta>();

            contas.Add(contaCorrente);
            contas.Add(contaPoupanca);

            _repo.UpdateRange(contas);
            if (await _repo.SaveAsync())
            {
                HistoricoDto historicoCorrenteDto = new HistoricoDto
                {
                    DataTransacao         = DateTime.Now,
                    DescricaoTransacao    = "RECEBIMENTO DE RESGATE DA POUPANCA",
                    DigitosAgencia        = contaCorrente.DigitosAgencia,
                    DigitosConta          = contaCorrente.DigitosConta,
                    DigitosAgenciaDestino = contaPoupanca.DigitosAgencia,
                    DigitosContaDestino   = contaPoupanca.DigitosConta,
                    TipoConta             = 0,
                    Valor     = contaDto.Quantia,
                    Operacao  = 3,
                    NomeConta = contaCorrente.NomeConta
                };
                var historicoContaCorrenteAdd = await _historicoServices.Add(historicoCorrenteDto);

                HistoricoDto historicoPoupancaDto = new HistoricoDto
                {
                    DataTransacao         = DateTime.Now,
                    DescricaoTransacao    = "RESGATE DE VALOR DA CONTA POUPANCA",
                    DigitosAgencia        = contaCorrente.DigitosAgencia,
                    DigitosConta          = contaCorrente.DigitosConta,
                    DigitosAgenciaDestino = contaPoupanca.DigitosAgencia,
                    DigitosContaDestino   = contaPoupanca.DigitosConta,
                    TipoConta             = 1,
                    Valor     = contaDto.Quantia,
                    Operacao  = 3,
                    NomeConta = contaPoupanca.NomeConta
                };
                var historicoContaPoupancaAdd = await _historicoServices.Add(historicoPoupancaDto);

                HistoricosContasDto historicosContasCorrenteDto = new HistoricosContasDto
                {
                    HistoricoId = historicoContaCorrenteAdd.Id,
                    ContaId     = contaCorrente.Id,
                    DataCriacao = DateTime.Now
                };

                HistoricosContasDto historicosContasPoupancaDto = new HistoricosContasDto
                {
                    HistoricoId = historicoContaPoupancaAdd.Id,
                    ContaId     = contaPoupanca.Id,
                    DataCriacao = DateTime.Now
                };
                var historicosContasCorrente = _map.Map <HistoricosContas>(historicosContasCorrenteDto);
                var historicosContasPoupanca = _map.Map <HistoricosContas>(historicosContasPoupancaDto);

                List <HistoricosContas> listHistoricosContas = new List <HistoricosContas>();

                listHistoricosContas.Add(historicosContasCorrente);
                listHistoricosContas.Add(historicosContasPoupanca);

                _repoHistoricosContas.AddRange(listHistoricosContas);
                if (await _repoHistoricosContas.SaveAsync())
                {
                    return(_map.Map <ContaDto>(contaCorrente));
                }
            }
            throw new ArgumentException("Erro ao persistir no banco de dados!");
        }
Exemplo n.º 10
0
        public async Task <ContaDto> Transferencia(HelperContaDto contaDto)
        {
            // CONTA QUE IRA MANDAR A TRANSFERENCIA
            var contaOrigin = await _repo.GetByAgenciaAndContaCorrente(contaDto.Agencia, contaDto.Conta);

            // CONTA QUE IRA RECEBER A TRANSFERENCIA
            var contaDestino = await _repo.GetByAgenciaAndContaCorrente(contaDto.AgenciaDestino, contaDto.ContaDestino);

            await ExistContaFindByCPF(contaDto);

            // SE O REGISTRO RETORNA COMO NULL
            if (contaOrigin == null || contaDestino == null)
            {
                throw new NotFoundException("Conta origin nao encontrada e/ou conta destino nao encontrada!");
            }
            else if (contaDto.Quantia > contaOrigin.Saldo)
            {
                throw new NotFoundException("Saldo Insuficiente!");
            }

            bool senhaConfere = CompareSenha(contaDto.Senha, contaOrigin.Senha);

            if (!senhaConfere)
            {
                throw new ArgumentException("Senha incorreta!");
            }

            contaOrigin.Saldo  -= contaDto.Quantia;
            contaDestino.Saldo += contaDto.Quantia;

            List <Conta> contas = new List <Conta>();

            contas.Add(contaOrigin);
            contas.Add(contaDestino);

            _repo.UpdateRange(contas);
            if (await _repo.SaveAsync())
            {
                HistoricoDto historicoOriginDto = new HistoricoDto
                {
                    DataTransacao         = DateTime.Now,
                    DescricaoTransacao    = "TRANSFERENCIA BANCARIA PARA CONTA CORRENTE",
                    DigitosAgencia        = contaOrigin.DigitosAgencia,
                    DigitosConta          = contaOrigin.DigitosConta,
                    DigitosAgenciaDestino = contaDestino.DigitosAgencia,
                    DigitosContaDestino   = contaDestino.DigitosConta,
                    TipoConta             = 0,
                    Valor            = contaDto.Quantia,
                    NomeConta        = contaOrigin.NomeConta,
                    NomeContaDestino = contaDestino.NomeConta,
                    Operacao         = 4
                };
                var historicoAdd = await _historicoServices.Add(historicoOriginDto);

                HistoricoDto historicoDestinoDto = new HistoricoDto
                {
                    DataTransacao         = DateTime.Now,
                    DescricaoTransacao    = "RECEBIMENTO DE TRANSFERENCIA BANCARIA",
                    DigitosAgencia        = contaOrigin.DigitosAgencia,
                    DigitosConta          = contaOrigin.DigitosConta,
                    DigitosAgenciaDestino = contaDestino.DigitosAgencia,
                    DigitosContaDestino   = contaDestino.DigitosConta,
                    TipoConta             = 0,
                    Valor            = contaDto.Quantia,
                    NomeConta        = contaOrigin.NomeConta,
                    NomeContaDestino = contaDestino.NomeConta,
                };
                var historicoDestinoAdd = await _historicoServices.Add(historicoDestinoDto);

                HistoricosContasDto historicosContasDestinoDto = new HistoricosContasDto
                {
                    ContaId     = contaDestino.Id,
                    HistoricoId = historicoDestinoAdd.Id,
                    DataCriacao = DateTime.Now
                };

                HistoricosContasDto historicosContasDto = new HistoricosContasDto
                {
                    ContaId     = contaOrigin.Id,
                    HistoricoId = historicoAdd.Id,
                    DataCriacao = DateTime.Now
                };
                var historicosContas        = _map.Map <HistoricosContas>(historicosContasDto);
                var historicosContasDestino = _map.Map <HistoricosContas>(historicosContasDestinoDto);

                List <HistoricosContas> listHistoricosContas = new List <HistoricosContas>();

                listHistoricosContas.Add(historicosContas);
                listHistoricosContas.Add(historicosContasDestino);

                _repoHistoricosContas.AddRange(listHistoricosContas);

                if (await _repoHistoricosContas.SaveAsync())
                {
                    bool existeContaCadastrada = await _contaCadastradaService.ExisteContaCadastrada(contaDestino.Id, contaOrigin.PessoaId);

                    if (!existeContaCadastrada)
                    {
                        ContaCadastradaDto contaCadastradaDto = new ContaCadastradaDto
                        {
                            ContaId  = contaDestino.Id,
                            PessoaId = contaOrigin.PessoaId
                        };
                        await _contaCadastradaService.Add(contaCadastradaDto);
                    }
                    return(_map.Map <ContaDto>(contaOrigin));
                }
            }
            throw new ArgumentException("Erro ao persistir no banco!");
        }