/// <summary> /// Garante que o valor determinado pode ser recebido /// </summary> /// <param name="valor">Valor avaliado para recebimento</param> /// <exception cref="ArgumentOutOfRangeException">Exceção lançada quando o valor não seja valido para recebimento</exception> private void GarantirQuePodeReceber(decimal valor) { Validando.ZeroOuNegativo(valor, nameof(valor)); if (valor > 10000m) { throw new ArgumentOutOfRangeException("O valor a ser recebido excedeu o limite de 10000 reais", nameof(valor)); } }
/// <summary> /// Garante que o valor determinado pode ser depositado /// </summary> /// <param name="valor">Valor avaliado para deposito</param> /// <exception cref="ArgumentOutOfRangeException">Exceção lançada quando o valor não seja valido para deposito</exception> private void GarantirQuePodeDepositar(decimal valor) { Validando.ZeroOuNegativo(valor, nameof(valor)); if (valor > 5000) { throw new ArgumentOutOfRangeException("O valor a ser depositado excedeu o limite de 5000 reais", nameof(valor)); } }
/// <summary> /// Garante que o valor determinado pode ser sacado /// </summary> /// <param name="valor">Valor avaliado para saque</param> /// <exception cref="ArgumentOutOfRangeException">Exceção lançada quando o valor não seja valido para saque</exception> private void GarantirQuePodeSacar(decimal valor) { Validando.ZeroOuNegativo(valor, nameof(valor)); if (valor > 1500) { throw new ArgumentOutOfRangeException("O valor a ser sacado excedeu o limite de 1500 reais", nameof(valor)); } if (Saldo < valor) { throw new ArgumentOutOfRangeException("Saldo insuficiente para o saque desejado", nameof(valor)); } }
/// <summary> /// Garante que o valor determinado pode ser transferido /// </summary> /// <param name="valor">Valor avaliado para transferencia</param> /// <exception cref="ArgumentOutOfRangeException">Exceção lançada quando o valor não seja valido para transferencia</exception> private void GarantirQuePodeTransferir(decimal valor) { Validando.ZeroOuNegativo(valor, nameof(valor)); if (valor > 10000m) { throw new ArgumentOutOfRangeException("O valor a ser transferido excedeu o limite de 10000 reais", nameof(valor)); } if (Saldo < valor) { throw new ArgumentOutOfRangeException("Saldo insuficiente para a transferencia desejada", nameof(valor)); } }
public Conta(long id, long agenciaId, long pessoaId, Guid numero, decimal saldo = 0) { Validando.ZeroOuNegativo(id, nameof(id)); Validando.ZeroOuNegativo(agenciaId, nameof(agenciaId)); Validando.ZeroOuNegativo(pessoaId, nameof(pessoaId)); Validando.ZeroOuNegativo(pessoaId, nameof(pessoaId)); if (numero.Equals(Guid.Empty)) { throw new ArgumentNullException("O numero da conta não foi gerado em sua criação", nameof(numero)); } if (saldo < 0) { throw new ArgumentException("O saldo esta com valor negativo"); } Id = id; AgenciaId = agenciaId; PessoaId = pessoaId; Numero = numero; Saldo = saldo; }