public void TransferenciaInterna(TransferenciaApi transferenciaApi, OrigemOperacao origem) { var transferencia = transferenciaApi.ToModel(origem); Debito(transferencia); Credito(transferencia); }
public static Transferencia ToTransferencia(this CreditoApi model, OrigemOperacao origem) { return(new Transferencia { ContaCredito = model.Credit.Idenfifier, Operacao = RetornaTipoOperacao(origem), DataOperacao = model.Date, Valor = model.Value }); }
private static string RetornaTipoOperacao(OrigemOperacao origemOperacao) { switch (origemOperacao) { case OrigemOperacao.Saque: return("S"); case OrigemOperacao.Deposito: return("D"); case OrigemOperacao.Pagamento: return("P"); case OrigemOperacao.Transferencia: return("T"); } return(null); }
public void Credito(CreditoApi deposito, OrigemOperacao origem) { var contaCredito = _repoContaf.FindByConta(deposito.Credit.Idenfifier); if (contaCredito == null) { throw new Exception("Conta crédito não encontrada!"); } contaCredito.Saldo += deposito.Value; _repoContaf.Alterar(contaCredito); RegistraTransacao(deposito.ToTransferencia(origem)); }
public void Debito(DebitoApi debito, OrigemOperacao origem) { var contaDebito = _repoContaf.FindByConta(debito.Debit.Idenfifier); if (origem != OrigemOperacao.Pagamento) { ValidaDebito(debito.Value, contaDebito); } contaDebito.Saldo -= debito.Value; _repoContaf.Alterar(contaDebito); RegistraTransacao(debito.ToTransferencia(origem)); }