public ContaOperacao Add(ContaOperacao contaOperacao) { try { _db.ContaOperacao.Add(contaOperacao); _db.SaveChanges(); return(contaOperacao); } catch (Exception ex) { Console.WriteLine(ex.Message); throw ex; } }
public async Task <ContaOperacao> AddAsync(ContaOperacao contaOperacao) { try { await _db.ContaOperacao.AddAsync(contaOperacao); await _db.SaveChangesAsync(); return(contaOperacao); } catch (Exception ex) { Console.WriteLine(ex.Message); throw ex; } }
public async void Saque10SubtraiSaldoConta9188827893() { var conta = 9188827893; var valorSaque = 95; // When var contaSaldo = await _contaSaldoRepository.GetAsync(conta); Assert.NotNull(contaSaldo); Assert.False(contaSaldo.SaldoAtual <= 0); Assert.False(contaSaldo.SaldoAtual - valorSaque < 0); var valorNovoSaldo = Math.Truncate(contaSaldo.SaldoAtual - valorSaque); var objContaOperacao = new ContaOperacao { IdCliente = contaSaldo.IdCliente, IdConta = contaSaldo.IdConta, DataOperacao = DateTime.Now, TipoOperacao = "D", Valor = valorSaque }; var contaOperacao = await _contaOperacaoRepository.AddAsync(objContaOperacao); Assert.NotNull(contaOperacao); var objContaSaldo = contaSaldo; objContaSaldo.SaldoAnterior = objContaSaldo.SaldoAtual; objContaSaldo.SaldoAtual = valorNovoSaldo; _contaSaldoRepository.Update(objContaSaldo); var contaSaldoAtualizado = await _contaSaldoRepository.GetAsync(conta); Assert.NotNull(contaSaldoAtualizado); // Then Assert.Equal(valorNovoSaldo, contaSaldoAtualizado.SaldoAtual); }
public async void Deposito10SomaSaldoConta9188827893() { var conta = 9188827893; var valorDeposito = 10; // When var contaSaldo = await _contaSaldoRepository.GetAsync(conta); Assert.NotNull(contaSaldo); var valorNovoSaldo = Math.Truncate(contaSaldo.SaldoAtual + valorDeposito); var objContaOperacao = new ContaOperacao { IdCliente = contaSaldo.IdCliente, IdConta = contaSaldo.IdConta, DataOperacao = DateTime.Now, TipoOperacao = "C", Valor = valorDeposito }; var contaOperacao = await _contaOperacaoRepository.AddAsync(objContaOperacao); Assert.NotNull(contaOperacao); var objContaSaldo = contaSaldo; objContaSaldo.SaldoAnterior = objContaSaldo.SaldoAtual; objContaSaldo.SaldoAtual = valorNovoSaldo; _contaSaldoRepository.Update(objContaSaldo); var contaSaldoAtualizado = await _contaSaldoRepository.GetAsync(conta); Assert.NotNull(contaSaldoAtualizado); // Then Assert.Equal(valorNovoSaldo, contaSaldoAtualizado.SaldoAtual); }
public Task <ContaOperacao> AddAsync(ContaOperacao contaOperacao) { _ContaOperacao[0].Valor = _ContaOperacao[0].Valor + contaOperacao.Valor; return(Task.FromResult(_ContaOperacao[0])); }
public ContaOperacao Add(ContaOperacao contaOperacao) { _ContaOperacao[0].Valor = _ContaOperacao[0].Valor + contaOperacao.Valor; return(_ContaOperacao[0]); }
public OperacaoCaixaMutation(ContextServiceLocator contextServiceLocator) { Field <ContaOperacaoOutputType>( "depositar", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "conta" }, new QueryArgument <NonNullGraphType <DecimalGraphType> > { Name = "valor" } ), resolve: context => { var dtOperacao = DateTime.Now; var conta = context.GetArgument <Int64>("conta"); var valorDec = context.GetArgument <decimal>("valor"); var contaCliente = contextServiceLocator.ContaClienteRepository.Get(conta).FirstOrDefault(); if (contaCliente == null || contaCliente.NumeroConta <= 0) { throw new ExecutionError("Conta inválida."); } if (valorDec <= 0) { throw new ExecutionError("Valor inválido."); } var valor = double.Parse(valorDec.ToString()); var contaOperacao = new ContaOperacao { Id = ContaOperacao.GetNewId(), IdCliente = contaCliente.IdCliente, IdConta = contaCliente.Id, TipoOperacao = "C", //Crédito Valor = valor, DataOperacao = dtOperacao, Modificado = DateTime.Now, StatusRow = "I", //Insert IdUserInsert = -1 //Sistema }; contextServiceLocator.ContaOperacaoRepository.Add(contaOperacao); var contaSaldo = contextServiceLocator.ContaSaldoRepository.Get(conta); contaSaldo.SaldoAnterior = contaSaldo.SaldoAtual; contaSaldo.SaldoAtual = Math.Round(contaSaldo.SaldoAtual + valor, 2); contextServiceLocator.ContaSaldoRepository.Update(contaSaldo); return(new ContaOperacao { Valor = contaSaldo.SaldoAtual, Conta = new ContaCliente { NumeroConta = conta } }); }); Field <ContaOperacaoOutputType>( "sacar", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "conta" }, new QueryArgument <NonNullGraphType <DecimalGraphType> > { Name = "valor" } ), resolve: context => { var dtOperacao = DateTime.Now; var conta = context.GetArgument <Int64>("conta"); var valorDec = context.GetArgument <decimal>("valor"); var contaCliente = contextServiceLocator.ContaClienteRepository.Get(conta).FirstOrDefault(); if (contaCliente == null || contaCliente.NumeroConta <= 0) { throw new ExecutionError("Conta inválida."); } if (valorDec <= 0) { throw new ExecutionError("Valor inválido."); } var valor = double.Parse(valorDec.ToString()); var contaOperacao = new ContaOperacao { Id = ContaOperacao.GetNewId(), IdCliente = contaCliente.IdCliente, IdConta = contaCliente.Id, TipoOperacao = "D", //Débito Valor = valor, DataOperacao = dtOperacao, Modificado = DateTime.Now, StatusRow = "I", //Insert IdUserInsert = -1 //Sistema }; var contaSaldo = contextServiceLocator.ContaSaldoRepository.Get(conta); if (contaSaldo.SaldoAtual < valor) { throw new ExecutionError("Saldo insuficiente."); } contextServiceLocator.ContaOperacaoRepository.Add(contaOperacao); contaSaldo.SaldoAnterior = contaSaldo.SaldoAtual; contaSaldo.SaldoAtual = Math.Round(contaSaldo.SaldoAtual - valor, 2); contextServiceLocator.ContaSaldoRepository.Update(contaSaldo); return(new ContaOperacao { Valor = contaSaldo.SaldoAtual, Conta = new ContaCliente { NumeroConta = conta } }); }); }