示例#1
0
 // => a base é para pegar a referencia da classe pai, pois como a mesma é abstrata não pode ser referenciada
 public PagamentoCartaoDeCredito(string nomeTitular, string numeroDoCartao, string ultimaTransacao, DateTime dataPagamento, DateTime dataExpiracao, decimal total, decimal totalPagamento, Endereco endereco, Documento documento, string propretario, Email email)
     : base(dataPagamento, dataExpiracao, total, totalPagamento, endereco, documento, propretario, email)
 {
     NomeTitular     = nomeTitular;
     NumeroDoCartao  = numeroDoCartao;
     UltimaTransacao = ultimaTransacao;
 }
        protected Pagamento(DateTime dataPagamento, DateTime dataExpiracao, decimal total, decimal totalPagamento, Endereco endereco, Documento documento, string propretario, Email email)
        {
            // => O guid gera um código transforma em string => toString() =>
            // => retira os tracinhos => Replace("primeiro parametro que deseja retirar", "segundo parametro que ira entrar")
            // => pega as 10 primeiras posições => SubString(0,10)
            // => transforma tudo em maiusculo
            Numero         = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 10).ToUpper();
            DataPagamento  = dataPagamento;
            DataExpiracao  = dataExpiracao;
            Total          = total;
            TotalPagamento = totalPagamento;
            Endereco       = endereco;
            Documento      = documento;
            Propretario    = propretario;
            Email          = email;

            AddNotifications(new Contract()
                             .Requires()
                             .IsLowerOrEqualsThan(0, total, "Pagamento.Total", "O pagamento não pode ser igaul a 0")
                             .IsGreaterOrEqualsThan(total, totalPagamento, "Pagamento.TotalPagamento", "O valor pago é menor que o valor do pagamento")
                             );
        }
 // => a base é para pegar a referencia da classe pai, pois como a mesma é abstrata não pode ser referenciada
 public PagamentoPayPal(string codigoDaTransicao, DateTime dataPagamento, DateTime dataExpiracao, decimal total, decimal totalPagamento, Endereco endereco, Documento documento, string propretario, Email email)
     : base(dataPagamento, dataExpiracao, total, totalPagamento, endereco, documento, propretario, email)
 {
     CodigoDaTransicao = codigoDaTransicao;
 }