public ValidationResult Lancamento(TransacaoEntity entrada) { var transacaoValidation = new TransacaoValidation().Valid(entrada); if (transacaoValidation.IsValid) { var contasLancamento = new Transacao().TransacaoAdapters(entrada); var clienteContaOrigem = new TransacaoRepository().ConsultarInformacaoCliente(contasLancamento.Conta); if (clienteContaOrigem != null) { var saldoOrigem = new TransacaoRepository().AtualizarSaldoCliente(entrada.ContaOrigem, (clienteContaOrigem.SALDO - entrada.ContaDestinoValorTransacao)); var clienteContaDestino = new TransacaoRepository().ConsultarInformacaoCliente(contasLancamento.ContaDestino); if (clienteContaDestino != null) { var saldodestino = new TransacaoRepository().AtualizarSaldoCliente(entrada.ContaDestino, (clienteContaDestino.SALDO + entrada.ContaDestinoValorTransacao)); if (saldoOrigem == 1 && saldodestino == 1) { var logtransacao = new TransacaoRepository().InserirLogTransacao(entrada, (clienteContaOrigem.SALDO - entrada.ContaDestinoValorTransacao), (clienteContaDestino.SALDO + entrada.ContaDestinoValorTransacao)); transacaoValidation.Success = true; } } } } else { transacaoValidation.Errors.ToList().ForEach(item => entrada.AdicionarResultadoDeValidacao(item)); } return(transacaoValidation); }
public Cliente TransacaoAdapters(TransacaoEntity entrada) { return(new Cliente() { Conta = entrada.ContaOrigem, ContaDestino = entrada.ContaDestino, Valor = entrada.ContaDestinoValorTransacao }); }
public ClienteEntity InserirLogTransacao(TransacaoEntity transacao, decimal contaOrigemSaldoAtual, decimal contaDestinoSaldoAtual) { const string proc = "SP_Inserir_Transacao_Cliente"; var paramContaOrigem = DataHelperParameters.CreateParameter("@ContaOrigem", transacao.ContaOrigem); var paramContaDestino = DataHelperParameters.CreateParameter("@ContaDestino", transacao.ContaDestino); var paramContaOrigemSaldoAtual = DataHelperParameters.CreateParameter("@ContaOrigemSaldoAtual", contaOrigemSaldoAtual); var paramContaDestinoSaldoAtual = DataHelperParameters.CreateParameter("@ContaDestinoSaldoAtual", contaDestinoSaldoAtual); var paramContaDestinoValorTransacao = DataHelperParameters.CreateParameter("@ContaDestinoValorTransacao", transacao.ContaDestinoValorTransacao); return(_unidadeDeTrabalho.Get <ClienteEntity>(proc, paramContaOrigem, paramContaDestino, paramContaOrigemSaldoAtual, paramContaDestinoSaldoAtual, paramContaDestinoValorTransacao)); }
public IActionResult Post([FromBody] TransacaoEntity data) { var lancamento = new TransacaoApp().Lancamento(data); if (lancamento.Success) { return(Ok()); } else if (lancamento.Errors.Any()) { return(NoContent()); } return(NotFound()); }
public bool TestPost() { using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:5000/api/Superdigital"); var obj = new TransacaoEntity() { ContaOrigem = "1234567", ContaDestino = "76543210", ContaDestinoValorTransacao = 500 }; string jsonLancamento = JsonConvert.SerializeObject(obj); StringContent ctLancamento = new StringContent(jsonLancamento); ctLancamento.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage retorno = client.PostAsync("", ctLancamento).Result; return(retorno.IsSuccessStatusCode); } }