Ejemplo n.º 1
0
        /// <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));
            }
        }
Ejemplo n.º 2
0
        /// <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));
            }
        }
Ejemplo n.º 3
0
        /// <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));
            }
        }
Ejemplo n.º 4
0
        /// <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));
            }
        }
Ejemplo n.º 5
0
        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;
        }