예제 #1
0
        public string Transferencia(ContaCorrenteViewModel ccOrigemVM, ContaCorrenteViewModel ccDestinoVM, double valor)
        {
            var ccOrigem  = _mapper.Map <ContaCorrente>(ccOrigemVM);
            var ccDestino = _mapper.Map <ContaCorrente>(ccDestinoVM);

            return(_contaCorrenteRepository.Transferir(ccOrigem, ccDestino, valor));
        }
예제 #2
0
        public RequestResult Remove(ContaCorrenteViewModel entidade)
        {
            var lista = new List <string>();

            try
            {
                entidade.DataInclusao = DateTime.Now.ToString("yyyy-MM-dd hh:MM");
                entidade = mapper.Map <ContaCorrenteViewModel>(service.Remove(mapper.Map <ContaCorrente>(entidade)));
                uow.Commit(entidade.ValidationResult);
                if (!entidade.ValidationResult.Errors.Any())
                {
                    lista.Add("Sucesso!");
                    return(new RequestResult(lista, entidade, StatusMensagem.Ok));
                }
                else
                {
                    return(new RequestResult(entidade.ValidationResult.Errors, entidade, StatusMensagem.Erro));
                }
            }
            catch (Exception ex)
            {
                lista.Add(ex.Message.ToString());
                return(new RequestResult(lista, entidade, StatusMensagem.Erro));
            }
        }
        public void RealizarTransferenciaEntreContas(ContaCorrenteViewModel contaOrigem, ContaCorrenteViewModel contaDestino, decimal valorTransferencia)
        {
            ContaCorrente origem  = ObterContaCorrentePorNumeroEAgencia(contaOrigem.NumeroConta, contaOrigem.NumeroAgencia);
            ContaCorrente destino = ObterContaCorrentePorNumeroEAgencia(contaDestino.NumeroConta, contaDestino.NumeroAgencia);

            origem.RealizarTransferenciaPara(destino, valorTransferencia);

            _contaCorrenteRepository.Atualizar(origem);
            _contaCorrenteRepository.Atualizar(destino);
        }
        public int Alterar(ContaCorrenteViewModel p)
        {
            ContaCorrente tipoConta = new ContaCorrente()
            {
                Id    = p.Id,
                Valor = p.Valor,
            };

            return(tipoConta.Alterar());
        }
예제 #5
0
 public IActionResult Post([FromBody] ContaCorrenteViewModel model)
 {
     try
     {
         return(Ok(app.Add(model)));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public async Task <ActionResult <ContaCorrenteViewModel> > Adicionar(ContaCorrenteViewModel contaCorrente)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            await _contaCorrenteService.Adicionar(_mapper.Map <ContaCorrente>(contaCorrente));

            return(CustomResponse(contaCorrente));
        }
예제 #7
0
        public static ContaCorrente ToEntity(this ContaCorrenteViewModel viewModel)
        {
            ContaCorrente contaCorrente = new ContaCorrente
            {
                NumeroConta   = viewModel.NumeroConta,
                NumeroAgencia = viewModel.NumeroAgencia
            };

            contaCorrente.RealizarCreditoEmConta(viewModel.Valor);

            return(contaCorrente);
        }
예제 #8
0
        private void InicializarObjetos()
        {
            //Dados fake
            contaCorrenteOrigemModel = new Faker <ContaCorrenteViewModel>()
                                       .RuleFor(c => c.CodigoAgencia, f => f.Random.Number(1, 10))
                                       .RuleFor(c => c.Id, f => f.Random.Guid())
                                       .RuleFor(c => c.NumeroConta, f => f.Random.Number(10000, 20000))
                                       .RuleFor(c => c.Saldo, f => f.Random.Decimal(100, 50000));

            contaCorrenteDestinoModel = new Faker <ContaCorrenteViewModel>()
                                        .RuleFor(c => c.CodigoAgencia, f => f.Random.Number(1, 10))
                                        .RuleFor(c => c.Id, f => f.Random.Guid())
                                        .RuleFor(c => c.NumeroConta, f => f.Random.Number(10000, 20000))
                                        .RuleFor(c => c.Saldo, f => 1000);

            movimentacaoModel = new Faker <MovimentacaoViewModel>()
                                .RuleFor(x => x.ContaDestino, contaCorrenteDestinoModel)
                                .RuleFor(x => x.ContaOrigem, contaCorrenteOrigemModel)
                                .RuleFor(x => x.Valor, f => f.Random.Decimal(10, 50));

            movimentacaoErroModel = new Faker <MovimentacaoViewModel>()
                                    .RuleFor(x => x.ContaDestino, contaCorrenteDestinoModel)
                                    .RuleFor(x => x.ContaOrigem, contaCorrenteOrigemModel)
                                    .RuleFor(x => x.Valor, 0);

            contaCorrenteOrigem = new Faker <Conta>()
                                  .RuleFor(x => x.CodigoAgencia, contaCorrenteOrigemModel.CodigoAgencia)
                                  .RuleFor(x => x.Id, contaCorrenteOrigemModel.Id)
                                  .RuleFor(x => x.NumeroConta, contaCorrenteOrigemModel.NumeroConta)
                                  .RuleFor(x => x.Saldo, contaCorrenteOrigemModel.Saldo);

            contaCorrenteDestino = new Faker <Conta>()
                                   .RuleFor(x => x.CodigoAgencia, contaCorrenteDestinoModel.CodigoAgencia)
                                   .RuleFor(x => x.Id, contaCorrenteDestinoModel.Id)
                                   .RuleFor(x => x.NumeroConta, contaCorrenteDestinoModel.NumeroConta)
                                   .RuleFor(x => x.Saldo, contaCorrenteDestinoModel.Saldo);

            contas = new List <Conta>()
            {
                contaCorrenteOrigem, contaCorrenteDestino
            };


            _contaCorrenteRepository.Setup(r => r.Listar()).Returns(contas.AsQueryable());
            _unitOfWork.Setup(r => r.Commit());
            _contaCorrenteRepository.Setup(r => r.Adicionar(contaCorrenteOrigem));
            _contaCorrenteRepository.Setup(r => r.Adicionar(contaCorrenteDestino));
            _movimentacaoService.Setup(s => s.ExecutarMovimentacao(contaCorrenteOrigem, contaCorrenteDestino, movimentacaoModel.Valor)).Returns(1100);
            _movimentacaoService.Setup(s => s.ExecutarMovimentacao(contaCorrenteOrigem, contaCorrenteDestino, 0)).Throws(new BusinessException(Domain.Enums.EBusinessErrors.SaldoInsuficiente, "Erro"));
        }
예제 #9
0
        public ActionResult Post(ContaCorrenteViewModel collection)
        {
            if (!ModelState.IsValid)
            {
                return(NotFound(collection));
            }
            context.Registrar(collection);

            if (!_notifications.HasNotifications())
            {
                return(Ok(collection));
            }
            else
            {
                return(NotFound(_notifications));
            }
        }
        public IActionResult CadastrarNovaContaCorrente([FromBody] ContaCorrenteViewModel contaCorrente)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                _contaCorrenteService.CriarNovaContaCorrente(contaCorrente);
                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
예제 #11
0
        public void Insert()
        {
            var contaCorrenteViewModel = new ContaCorrenteViewModel
            {
                Ativo              = true,
                Saldo              = 0,
                DataInclusao       = System.DateTime.Now.ToString("yyyMMdd"),
                NrConta            = "7654321",
                Digito             = 1,
                IdCliente          = 2,
                UsuarioAlteracaoId = 1,
                UsuarioInclusaoId  = 1
            };

            var requestResult = app.Add(contaCorrenteViewModel);

            Assert.True(requestResult.Mensagens.Any(), (requestResult.Mensagens.Any() ? requestResult.Mensagens[0] : "Sucesso"));
        }
        public int Gravar(ContaCorrenteViewModel p)
        {
            int result;

            ContaCorrente contaCorrente = new ContaCorrente()
            {
                Valor = p.Valor,
            };

            if (p.Id != 0)
            {
                contaCorrente.Id = p.Id;
                result           = contaCorrente.Alterar();
            }
            else
            {
                result = contaCorrente.Gravar();
            }

            return(result);
        }
예제 #13
0
        public IActionResult Post([FromBody] ContaCorrenteViewModel model)
        {
            try
            {
                var conta = _mapper.Map <Conta>(model);

                _contaCorrenteService.Incluir(conta);

                return(Ok(new
                {
                    sucesso = true
                }));
            }
            catch (BusinessException ex)
            {
                return(StatusCode(StatusCodes.Status400BadRequest, new
                {
                    sucesso = false,
                    erros = new
                    {
                        Type = "BusinessException",
                        Code = ex.Code,
                        Message = ex.Message
                    }
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new
                {
                    sucesso = false,
                    erros = new
                    {
                        Type = ex.GetType().Name,
                        Message = ex.Message
                    }
                }));
            }
        }
예제 #14
0
        public void Registrar(ContaCorrenteViewModel contaCorrenteViewModel)
        {
            var registroCommand = mapper.Map <RegistrarContaCorrenteCommand>(contaCorrenteViewModel);

            bus.SendCommand(registroCommand);
        }
 public void CriarNovaContaCorrente(ContaCorrenteViewModel contaCorrente)
 {
     _contaCorrenteRepository.Salvar(contaCorrente.ToEntity());
 }
        public void Atualizar(ContaCorrenteViewModel contaCorrenteViewModel)
        {
            var atualizarContaCorrenteCommand = _mapper.Map <AtualizarContaCorrenteCommand>(contaCorrenteViewModel);

            _bus.SendCommand(atualizarContaCorrenteCommand);
        }
        public void Cadastrar(ContaCorrenteViewModel contaCorrenteViewModel)
        {
            var cadastrarContaCorrenteCommand = _mapper.Map <CadastrarContaCorrenteCommand>(contaCorrenteViewModel);

            _bus.SendCommand(cadastrarContaCorrenteCommand);
        }