Esempio n. 1
0
        public static bool ClientePossuiDinheiroSuficienteNoFundoSelecionado(MovimentacaoRequestDTO dto, List <Movimentacao> movimentacoesCliente)
        {
            var movimentacoes             = movimentacoesCliente.Where(x => x.IdFundo == Guid.Parse(dto.IdFundo));
            var dinheiroDisponivelNoFundo = RetornarValorAplicadoNoFundo(movimentacoes);

            return(dinheiroDisponivelNoFundo >= dto.ValorMovimentacao);
        }
Esempio n. 2
0
        public bool Resgatar(MovimentacaoRequestDTO dto)
        {
            ValidarResgate(dto);
            var movimentacao = new Movimentacao(dto, TipoMovimentacao.Resgate);

            return(_movimentacaoRepository.CriarMovimentacao(movimentacao));
        }
Esempio n. 3
0
 public Movimentacao(MovimentacaoRequestDTO dto, TipoMovimentacao tipoMovimentacao)
 {
     Id = Guid.NewGuid();
     IdTipoMovimentacao = (int)tipoMovimentacao;
     IdFundo            = Guid.Parse(dto.IdFundo);
     CPFCliente         = dto.CPFCliente;
     ValorMovimentacao  = dto.ValorMovimentacao;
     DataMovimentacao   = DateTime.Now;
 }
Esempio n. 4
0
 public async Task <IActionResult> Resgatar([FromBody] MovimentacaoRequestDTO movimentacao)
 {
     try
     {
         return(Ok(_fundoService.Resgatar(movimentacao)));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Esempio n. 5
0
        private bool ValidarResgate(MovimentacaoRequestDTO dto)
        {
            var movimentacoesCliente = _movimentacaoRepository.ListarMovimentacoesCliente(dto.CPFCliente);

            if (!ClientePossuiDinheiroAplicadoNoFundo(dto, movimentacoesCliente))
            {
                throw new Exception("O Cliente não possui dinheiro investido no fundo selecionado.");
            }

            if (!ClientePossuiDinheiroSuficienteNoFundoSelecionado(dto, movimentacoesCliente))
            {
                throw new Exception("O valor informado para resgate é maior do que o cliente possui investido.");
            }

            return(true);
        }
Esempio n. 6
0
 public static bool ClientePossuiDinheiroAplicadoNoFundo(MovimentacaoRequestDTO dto, List <Movimentacao> movimentacoesCliente)
 {
     return(movimentacoesCliente.Any(x => x.IdFundo == Guid.Parse(dto.IdFundo)));
 }
Esempio n. 7
0
        public bool Aplicar(MovimentacaoRequestDTO dto)
        {
            var movimentacao = new Movimentacao(dto, TipoMovimentacao.Aplicacao);

            return(_movimentacaoRepository.CriarMovimentacao(movimentacao));
        }