예제 #1
0
 public void Salvar(ContaTransacaoDTO contaTransacao)
 {
     using (var rep = new RepositoryBase <ContaTransacaoEntity>(_configuration))
     {
         rep.Insert(_mapper.GetMapperDtoToEntity(contaTransacao));
     }
 }
예제 #2
0
 public void Atualizar(ContaTransacaoDTO contaTransacao)
 {
     using (var rep = new RepositoryBase <ContaTransacaoEntity>(_configuration))
     {
         rep.Update(_mapper.GetMapperDtoToEntity(contaTransacao));
     }
 }
예제 #3
0
        public bool ValidaContasOrigemDestino(ContaTransacaoDTO contaTransacaoDTO)
        {
            var listaDeContas = _conta.ListarContas(contaTransacaoDTO.AgContaOrigem, contaTransacaoDTO.NumContaOrigem, contaTransacaoDTO.AgContaDestino, contaTransacaoDTO.NumContaDestino);

            if (listaDeContas.Count == 0)
            {
                throw new ArgumentException("Nenhum conta foi localizada");
            }

            var ContaOrigem = listaDeContas.Find(c => c.ContaAgencia == contaTransacaoDTO.AgContaOrigem && c.ContaNumero == contaTransacaoDTO.NumContaOrigem);

            if (ContaOrigem == null)
            {
                throw new ArgumentException("Conta origem não localizada");
            }

            if (ContaOrigem.Saldo < contaTransacaoDTO.ValorOperacao)
            {
                throw new ArgumentException("Saldo insuficiente");
            }

            var ContaDestino = listaDeContas.Find(c => c.ContaAgencia == contaTransacaoDTO.AgContaDestino && c.ContaNumero == contaTransacaoDTO.NumContaDestino);

            if (ContaDestino == null)
            {
                throw new ArgumentException("Conta destino não localizada");
            }

            return(true);
        }
        public void Salvar(ContaTransacaoDTO contaTransacao)
        {
            //try
            //{
            bool processarTransacao_Ok = false;

            var transacaoValida = _validarTransacaoService.TransacaoValida(contaTransacao);

            if (transacaoValida)
            {
                processarTransacao_Ok = _processamentoDeTransacaoService.ProcessarTransacao(contaTransacao);
            }

            if (processarTransacao_Ok)
            {
                _repository.Salvar(contaTransacao);
            }
            else
            {
                throw new ArgumentException("Ocorreu uma falha na transação");
            }
            //}
            //catch (Exception ex)
            //{
            //    throw new ArgumentException("Ocorreu uma falha na transação");
            //}
        }
 public ObjectResult Post([FromBody] ContaTransacaoDTO contaTransacao)
 {
     try
     {
         _transacaoApp.Salvar(contaTransacao);
         return(StatusCode((int)HttpStatusCode.Created, "Operação realizada com sucesso"));
     }
     catch (Exception ex)
     {
         return(StatusCode((int)HttpStatusCode.OK, ex.Message));
     }
 }
예제 #6
0
 public void CadastrarEmpresa(ContaTransacaoViewModel contaTransacao)
 {
     using (HttpClient client = new HttpClient())
     {
         var contaTransacaoDTO = _mapper.Map <ContaTransacaoDTO>(contaTransacao);
         ServiceBase(client);
         string              parametroJSON = JsonConvert.SerializeObject(contaTransacaoDTO);
         StringContent       conteudo      = new StringContent(parametroJSON, Encoding.UTF8, "application/json");
         HttpResponseMessage response      = client.PostAsync("InserirTransacao", conteudo).Result;
         string              stringData    = response.Content.ReadAsStringAsync().Result;
         ContaTransacaoDTO   data          = JsonConvert.DeserializeObject <ContaTransacaoDTO>(stringData);
     }
 }
예제 #7
0
        public ContaTransacaoViewModel ObterEmpresa(int IdContaTransacao)
        {
            using (HttpClient client = new HttpClient())
            {
                ServiceBase(client);
                HttpResponseMessage response = client.GetAsync("ObterTransacaoById/" + IdContaTransacao).Result;
                string            stringData = response.Content.ReadAsStringAsync().Result;
                ContaTransacaoDTO data       = JsonConvert.DeserializeObject <ContaTransacaoDTO>(stringData);

                var empresaModel = _mapper.Map <ContaTransacaoViewModel>(data);
                return(empresaModel);
            }
        }
예제 #8
0
 public TransacaoTest()
 {
     _TransacaoEsperadaDTO = new ContaTransacaoDTO()
     {
         CdTransacao     = (int)0,
         AgContaOrigem   = "0123",
         NumContaOrigem  = "10123",
         AgContaDestino  = "0123",
         NumContaDestino = "20125",
         TipoOperacao    = (int)TipoOperacaoEnum.Credito,
         ValorOperacao   = 250.00M,
         DataOperacao    = DateTime.Now,
     };
 }
예제 #9
0
        public bool TransacaoValida(ContaTransacaoDTO contaTransacaoDTO)
        {
            var contaTransacaoEntity       = new ContaTransacaoEntity();
            var contaTransacaoEntityValida = contaTransacaoEntity.ValidaContaTransacaoEntity(
                contaTransacaoDTO.CdTransacao,
                contaTransacaoDTO.AgContaOrigem,
                contaTransacaoDTO.NumContaOrigem,
                contaTransacaoDTO.AgContaDestino,
                contaTransacaoDTO.NumContaDestino,
                contaTransacaoDTO.TipoOperacao,
                contaTransacaoDTO.ValorOperacao,
                contaTransacaoDTO.DataOperacao
                );

            return(true);
        }
예제 #10
0
        public bool ProcessarTransacao(ContaTransacaoDTO transacaoDTO)
        {
            var listaDeContas = _conta.ListarContas(transacaoDTO.AgContaOrigem, transacaoDTO.NumContaOrigem, transacaoDTO.AgContaDestino, transacaoDTO.NumContaDestino);

            var ContaOrigem  = listaDeContas.Find(c => c.ContaAgencia == transacaoDTO.AgContaOrigem && c.ContaNumero == transacaoDTO.NumContaOrigem);
            var ContaDestino = listaDeContas.Find(c => c.ContaAgencia == transacaoDTO.AgContaDestino && c.ContaNumero == transacaoDTO.NumContaDestino);

            if (ContaOrigem == null || ContaDestino == null)
            {
                throw new ArgumentException("Ocorreu uma falha na transação");
            }

            ContaMovimentoHistoricoDTO movimentoHistoricoContaOrigemDTO = new ContaMovimentoHistoricoDTO()
            {
                CdConta       = ContaOrigem.CdConta,
                AgConta       = ContaOrigem.ContaAgencia,
                NumConta      = ContaOrigem.ContaNumero,
                SaldoAnterior = ContaOrigem.Saldo,
                SaldoAtual    = (ContaOrigem.Saldo - transacaoDTO.ValorOperacao),
                TipoOperacao  = (int)TipoOperacaoEnum.Debito,
                ValorOperacao = transacaoDTO.ValorOperacao,
                DataOperacao  = transacaoDTO.DataOperacao
            };

            ContaMovimentoHistoricoDTO movimentoHistoricoContaDestinoDTO = new ContaMovimentoHistoricoDTO()
            {
                CdConta       = ContaDestino.CdConta,
                AgConta       = ContaDestino.ContaAgencia,
                NumConta      = ContaDestino.ContaNumero,
                SaldoAnterior = ContaDestino.Saldo,
                SaldoAtual    = (ContaDestino.Saldo + transacaoDTO.ValorOperacao),
                TipoOperacao  = (int)TipoOperacaoEnum.Credito,
                ValorOperacao = transacaoDTO.ValorOperacao,
                DataOperacao  = transacaoDTO.DataOperacao
            };

            ContaOrigem.Saldo  -= transacaoDTO.ValorOperacao;
            ContaDestino.Saldo += transacaoDTO.ValorOperacao;

            _conta.Atualizar(ContaOrigem);
            _conta.Atualizar(ContaDestino);

            _historico.Salvar(movimentoHistoricoContaOrigemDTO);
            _historico.Salvar(movimentoHistoricoContaDestinoDTO);

            return(true);
        }
예제 #11
0
 //ContaTransacao
 public ContaTransacaoEntity GetMapperDtoToEntity(ContaTransacaoDTO contaTransacaoDTO)
 {
     return(_mapper.Map <ContaTransacaoEntity>(contaTransacaoDTO));
 }
예제 #12
0
 public void Atualizar(ContaTransacaoDTO contaTransacao)
 {
     _sevice.Atualizar(contaTransacao);
 }
예제 #13
0
 public void Salvar(ContaTransacaoDTO contaTransacao)
 {
     _sevice.Salvar(contaTransacao);
 }
 public void Atualizar(ContaTransacaoDTO contaTransacao)
 {
     _repository.Atualizar(contaTransacao);
 }