public bool Deposito(int idAgencia, int conta, decimal valor, out string mensagemErro) { mensagemErro = ""; var agencia = AgenciaRepository.GetById(idAgencia); if (agencia == null) { mensagemErro = "Agência inválida!"; return(false); } var contaCorrente = ContaRepository.GetById(idAgencia, conta); if (contaCorrente == null) { mensagemErro = "Conta inválida!"; return(false); } if (valor <= 0) { mensagemErro = "Valor do depósito deve ser maior do que 0!"; return(false); } contaCorrente.Saldo = contaCorrente.Saldo + valor; var extrato = new Extrato() { DataRegistro = DateTime.Today, AgenciaId = idAgencia, ContaId = conta, Valor = valor, Saldo = contaCorrente.Saldo, Descricao = "Depósito" }; try { using (var transaction = new TransactionScope()) { ContaRepository.Save(contaCorrente); ExtratoRepository.Save(extrato); transaction.Complete(); } } catch (Exception) { // incluir isso em um log... mensagemErro = "Ocorreu um erro ao fazer o depósito!"; return(false); } return(true); }
public bool Deposito(int idAgencia, int numero, string banco, decimal valor, out string mensagemErro) { mensagemErro = ""; var agencia = AgenciaRepository.GetById(idAgencia); var contaInvestimento = ContaInvestimentoRepository.GetById(idAgencia, numero); if (agencia == null) { mensagemErro = "Agência inválida!"; return(false); } if (contaInvestimento == null) { mensagemErro = "Conta inválida!"; return(false); } if (valor < 50) { mensagemErro = "O valor do depósito precisa ser maior do que 0!"; return(false); } contaInvestimento.Saldo = contaInvestimento.Saldo + valor; var extrato = new ExtratoInvetimento { DataRegistro = DateTime.Now, Saldo = contaInvestimento.Saldo, IdAgencia = 0001, IdConta = 1040, Valor = 300m, Descricao = "Depósito" }; try { using (var transaction = new TransactionScope()) { ContaInvestimentoRepository.Save(contaInvestimento); ExtratoInvestimentoRepository.Save(extrato); transaction.Complete(); } } catch (Exception) { mensagemErro = "Ocorreu um erro ao fazer o depósito!"; return(false); } return(true); }
public bool Deposito(int agencia, int conta, decimal valor, out string mensagemErro) { mensagemErro = ""; var ag = AgenciaRepository.GetById(agencia); if (ag == null) { mensagemErro = "Agência Invalida"; return(false); } var cc = ContaRepository.GetById(agencia, conta); if (cc == null) { mensagemErro = "Conta Invalida"; return(false); } if (valor <= 0) { mensagemErro = "O valor do deposito for maior que zero!"; return(false); } cc.Saldo = cc.Saldo + valor; var extrato = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = agencia, ContaId = conta, Valor = valor, Saldo = cc.Saldo, Descricao = "Deposito" }; try { using (var t = new TransactionScope()) { ContaRepository.Save(cc); ExtratoRepository.Save(extrato); t.Complete(); } } catch (Exception ex) { mensagemErro = "Ocorreu um problema ao fazer o depósito!"; return(false); } return(true); }
public IList <Extrato> Extrato(int agencia, int conta, DateTime dataInicio, DateTime dataFim, out string mensagemErro) { mensagemErro = ""; var ag = AgenciaRepository.GetById(agencia); if (ag == null) { mensagemErro = "Agencia Invalida"; return(null); } var cc = ContaRepository.GetById(agencia, conta); if (cc == null) { mensagemErro = "Conta Invalida"; return(null); } if (dataInicio > dataFim) { mensagemErro = "Data inicio deve ser menor que a data de fim!"; return(null); } if ((dataFim - dataInicio).Days > 120) { mensagemErro = "O perido nao deve ser superior a 120 dias!"; return(null); } try { var extrato = ExtratoRepository.GetByPeriodo(agencia, conta, dataInicio, dataFim); var linhaSaldo = new Extrato() { Descricao = "Saldo anterior", Saldo = ExtratoRepository.GetSaldoAnterior(agencia, conta, dataInicio, dataFim) }; extrato.Insert(0, linhaSaldo); return(extrato); } catch (Exception ex) { mensagemErro = "Ocorreu um problema ao obter o extrato!"; return(null); } }
public IList <Extrato> Extrato(int idAgencia, int conta, DateTime dataInicio, DateTime dataFim, out string mensagemErro) { mensagemErro = ""; var agencia = AgenciaRepository.GetById(idAgencia); if (agencia == null) { mensagemErro = "Agência inválida!"; return(null); } var contaCorrente = ContaRepository.GetById(idAgencia, conta); if (contaCorrente == null) { mensagemErro = "Conta de origem é invalida!"; return(null); } if (dataInicio > dataFim) { mensagemErro = "A data de inicio deve ser menor do que a data fim!"; return(null); } if ((dataFim - dataInicio).Days > 120) { mensagemErro = "O período não deve ser superior a 120 dias!"; return(null); } try { var extratoLista = ExtratoRepository.GetByPeriodo(agencia.Id, conta, dataInicio, dataFim); return(extratoLista); } catch (Exception) { mensagemErro = "Ocorreu um erro ao fazer obter o extrato!"; return(null); } }
public decimal Saldo(int agencia, int conta, out string mensagemErro) { mensagemErro = ""; var ag = AgenciaRepository.GetById(agencia); if (ag == null) { mensagemErro = "Agencia Invalida"; return(0); } var cc = ContaRepository.GetById(agencia, conta); if (cc == null) { mensagemErro = "Conta Invalida"; return(0); } return(cc.Saldo); }
public decimal Saldo(int agencia, int conta, out string mensagemErro) { mensagemErro = ""; var ag = AgenciaRepository.GetById(agencia); if (agencia == 0) { mensagemErro = "Agência inválida!"; return(0); } var contaCorrente = ContaRepository.GetById(agencia, conta); if (contaCorrente == null) { mensagemErro = "Conta inválida!"; return(0); } return(contaCorrente.Saldo); }
public bool Saque(int idAgencia, int conta, decimal valor, out string mensagemErro) { mensagemErro = ""; var agencia = AgenciaRepository.GetById(idAgencia); if (agencia == null) { mensagemErro = "Agência inválida!"; return(false); } var contaCorrente = ContaRepository.GetById(idAgencia, conta); if (contaCorrente == null) { mensagemErro = "Conta inválida!"; return(false); } if (valor <= 0) { mensagemErro = "O valor do saque precisa ser maior que zero!"; return(false); } if (valor > contaCorrente.Saldo) { mensagemErro = "O valor do saque precisa ser menor ou igual ao saldo da conta!"; return(false); } contaCorrente.Saldo = contaCorrente.Saldo - valor; var extrato = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = idAgencia, ContaId = conta, Valor = valor * -1, Saldo = contaCorrente.Saldo, Descricao = "Saque" }; try { using (var transaction = new TransactionScope()) { ContaRepository.Save(contaCorrente); ExtratoRepository.Save(extrato); transaction.Complete(); } } catch (Exception) { // incluir isso em um log... mensagemErro = "Ocorreu um erro ao fazer o saque!"; return(false); } return(true); }
public bool Transferencia(int agenciaOrigem, int contaOrigem, decimal valor, int agenciaDestino, int contaDestino, out string mensagemErro) { mensagemErro = ""; var agOrigem = AgenciaRepository.GetById(agenciaOrigem); if (agOrigem == null) { mensagemErro = "Agência de origem inválida!"; return(false); } var contaCorrenteOrigem = ContaRepository.GetById(agenciaOrigem, contaOrigem); if (contaCorrenteOrigem == null) { mensagemErro = "Conta de origem inválida!"; return(false); } if (valor <= 0) { mensagemErro = "O valo deve ser maior do que zero!"; return(false); } if (valor > contaCorrenteOrigem.Saldo) { mensagemErro = "O valor do saque precisa ser menor ou igual ao saldo da conta!"; return(false); } var agDestino = AgenciaRepository.GetById(agenciaDestino); if (agDestino == null) { mensagemErro = "Agência de destino inválida!"; return(false); } var contaCorrenteDestino = ContaRepository.GetById(agenciaDestino, contaDestino); if (contaCorrenteDestino == null) { mensagemErro = "Conta de destino inválida!"; return(false); } contaCorrenteOrigem.Saldo = contaCorrenteOrigem.Saldo - valor; var extratoOrigem = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = agenciaOrigem, ContaId = contaCorrenteOrigem.Id, Valor = valor * -1, Saldo = contaCorrenteDestino.Saldo, Descricao = $"Transferência para Ag {agenciaDestino} Cc {contaCorrenteDestino} ", }; contaCorrenteDestino.Saldo = contaCorrenteDestino.Saldo + valor; var extratoDestino = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = agenciaDestino, ContaId = contaCorrenteDestino.Id, Valor = valor, Saldo = contaCorrenteDestino.Saldo, Descricao = $"Transferência de Ag {agenciaOrigem} Cc {contaCorrenteOrigem} ", }; try { using (var transaction = new TransactionScope()) { ContaRepository.Save(contaCorrenteOrigem); ExtratoRepository.Save(extratoOrigem); ExtratoRepository.Save(extratoDestino); transaction.Complete(); } } catch (Exception) { mensagemErro = "Ocorreu um problema ao fazer a tranferência!"; return(false); } return(true); }
public bool Transferencia(int agenciaOrigem, int contaOrigem, decimal valor, int agenciaDestino, int contaDestino, out string mensagemErro) { mensagemErro = ""; var agencia = AgenciaRepository.GetById(agenciaOrigem); var agDestino = AgenciaRepository.GetById(agenciaDestino); var contaInvestimento = ContaInvestimentoRepository.GetById(agenciaOrigem, contaOrigem); var ccDestino = ContaInvestimentoRepository.GetById(agenciaDestino, contaDestino); if (agencia == null) { mensagemErro = "Agência de origem não existe!"; return(false); } if (agDestino == null) { mensagemErro = "Agêncica de destino não existe!"; return(false); } if (contaInvestimento == null) { mensagemErro = "Conta de origem não existe!"; return(false); } if (ccDestino == null) { mensagemErro = "Conta destino não existe!"; return(false); } if (valor <= 0) { mensagemErro = "O valor da transferência precisa deve ser maior do que 0!"; return(false); } contaInvestimento.Saldo = contaInvestimento.Saldo - valor; var extratoContaOrigem = new ExtratoInvetimento() { DataRegistro = DateTime.Now, IdAgencia = contaInvestimento.Id, IdConta = contaInvestimento.Id, Valor = valor * -1, Saldo = contaInvestimento.Saldo, Descricao = $"Transferência para Ag {agenciaDestino} Cc {contaDestino}", }; contaInvestimento.Saldo = ccDestino.Saldo + valor; ccDestino.Saldo = ccDestino.Saldo + valor; var extratoContaDestino = new ExtratoInvetimento() { DataRegistro = DateTime.Now, IdAgencia = ccDestino.AgenciaId, IdConta = ccDestino.Id, Valor = valor, Saldo = ccDestino.Saldo, Descricao = $"Transferência para Ag {agenciaOrigem} Cc {contaInvestimento}", }; try { using (var transaction = new TransactionScope()) { ContaInvestimentoRepository.Save(contaInvestimento); ExtratoInvestimentoRepository.Save(extratoContaOrigem); ExtratoInvestimentoRepository.Save(extratoContaDestino); transaction.Complete(); } } catch (Exception) { mensagemErro = "Ocorreu um problema ao fazer a tranferência!"; return(false); } return(true); }
public bool Transferencia(int agenciaOrigem, int contaOrigem, decimal valor, int agenciaDestino, int contaDestino, out string mensagemErro) { mensagemErro = ""; var ag = AgenciaRepository.GetById(agenciaOrigem); if (ag == null) { mensagemErro = "Agencia de origem Invalida"; return(false); } var cc = ContaRepository.GetById(agenciaOrigem, contaOrigem); if (cc == null) { mensagemErro = "Conta de Origem Invalida"; return(false); } if (valor <= 0) { mensagemErro = "O valor deve ser maior que zero!"; return(false); } if (valor > cc.Saldo) { mensagemErro = "O valor deve ser menor ou igual ao saldo da conta de origem!"; return(false); } var ag2 = AgenciaRepository.GetById(agenciaDestino); if (ag2 == null) { mensagemErro = "Agencia de destino invalida"; return(false); } var cc2 = ContaRepository.GetById(agenciaDestino, contaDestino); if (cc2 == null) { mensagemErro = "Conta de destino inválida!"; return(false); } cc.Saldo = cc.Saldo - valor; var extratoOrigem = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = agenciaOrigem, ContaId = contaOrigem, Valor = valor * -1, Saldo = cc.Saldo, Descricao = $"Transferencia para AG {agenciaDestino} CC {contaDestino}" }; cc2.Saldo = cc2.Saldo + valor; var extratoDestino = new Extrato() { DataRegistro = DateTime.Now, AgenciaId = agenciaDestino, ContaId = contaDestino, Valor = valor, Saldo = cc2.Saldo, Descricao = $"Transferencia de AG {agenciaOrigem} CC {contaOrigem}" }; try { using (var t = new TransactionScope()) { ContaRepository.Save(cc); ContaRepository.Save(cc2); ExtratoRepository.Save(extratoOrigem); ExtratoRepository.Save(extratoDestino); t.Complete(); } } catch (Exception ex) { mensagemErro = "Ocorreu um problema ao fazer o transferencia!"; return(false); } return(true); }