예제 #1
0
        public void RetornarErroAssinaturaAtiva()
        {
            var pagamento = new PaypalPagamento("12312313", DateTime.Now, DateTime.Now.AddDays(5), 10, 10, _endereco, "Cangaço Corp", _documento, _email);

            _assinatura.AdicionarPagamento(pagamento);
            _estudante.AdicionarAssinatura(_assinatura);
            _estudante.AdicionarAssinatura(_assinatura);

            Assert.IsTrue(_estudante.Invalid);
        }
예제 #2
0
        public void DeveRetornarErroQuandoAssinaturaEstiverAtiva()
        {
            var pagamento = new PayPal("12345678", DateTime.Now, DateTime.Now.AddDays(6), 10, 10, "O Proprio", documento, endereco, email);

            assinatura.AdicionarPagamento(pagamento);

            estudante.AdicionarAssinatura(assinatura);
            estudante.AdicionarAssinatura(assinatura);

            Assert.IsTrue(estudante.Invalid);
        }
예제 #3
0
        public ICommandResult Handle(AssinaturaBoletoCommand command)
        {
            //fail fast validations
            command.Validate();

            if (command.Invalid)
            {
                AddNotifications(command);
                return(new CommandResult(false, "Não foi possível realizar sua assinatura."));
            }

            //Verificar se documento ja esta cadastrado
            if (estudanteRepository.DocumentoExiste(command.Documento))
            {
                AddNotification("Documento", "Este CPF já está em uso");
            }

            //verificar se email ja esta cadastrado
            if (estudanteRepository.EmailExiste(command.Documento))
            {
                AddNotification("Email", "Este E-mail já está em uso");
            }

            //gerar os vos
            var nome      = new Nome(command.PrimeiroNome, command.UltimoNome);
            var documento = new Documento(command.Documento, EDocumentoTipo.CPF);
            var email     = new Email(command.Email);
            var endereco  = new Endereco(command.Rua, command.Numero, command.Bairro, command.Cidade, command.Estado, command.Pais, command.CEP);

            //gerar as entidades
            var estudante  = new Estudante(nome, documento, email);
            var assinatura = new Assinatura(DateTime.Now.AddMonths(1));
            var pagamento  = new Boleto(
                command.CodigoBarras,
                command.NumeroBoleto,
                command.DataPagamento,
                command.DataExpiracao,
                command.Total,
                command.TotalPago,
                command.Pagador,
                new Documento(command.PagadorDocumento, command.PagadorDocumentoTipo),
                endereco,
                email);

            //relacionamentos
            assinatura.AdicionarPagamento(pagamento);
            estudante.AdicionarAssinatura(assinatura);

            //agrupar as validações
            AddNotifications(nome, documento, email, endereco, estudante, assinatura, pagamento);

            //salvar as informações
            estudanteRepository.CriarAssinatura(estudante);

            //enviar email de boas vindas
            emailService.Send(estudante.Nome.ToString(), estudante.Email.EnderecoEmail, "Bem vindo ao serviço de assinatura", "Sua assinatura foi criada com sucesso.");

            //retornar as informações
            return(new CommandResult(true, "Assinatura realizada com sucesso."));
        }
예제 #4
0
        public ICommandResult Handle(CriarAssinaturaPayPalCommand command)
        {
            // Fail Fast Validations
            command.Validate();
            if (command.Invalid)
            {
                AddNotifications(command);
                return(new CommandResult(false, "Não foi possível realizar sua assinatura"));
            }

            // Verificar se documento já está cadastrado
            if (_repository.DocumentoExiste(command.Documento))
            {
                AddNotification("Documemnto", "Este CPF já está em uso");
            }

            // Verificar se e-mail já está cadastrado
            if (_repository.EmailExiste(command.Email))
            {
                AddNotification("Documemnto", "Este E-mail já está em uso");
            }

            // Gerar os VOs
            var nome      = new Nome(command.PrimeiroNome, command.Sobrenome);
            var documento = new Documento(command.Documento, ETipoDocumento.CPF);
            var endereco  = new Endereco(command.Logradouro, command.NumeroEndereco, command.Bairro, command.Cidade, command.Estado, command.Pais, command.CEP);
            var email     = new Email(command.Email);

            // Gerar as entidades
            var estudante  = new Estudante(nome, documento, email);
            var assinatura = new Assinatura(DateTime.Now.AddMonths(1));
            var pagamento  = new PaypalPagamento(command.CodigoTransacao, command.DataPagamento, command.DataVencimento, command.ValorGerado, command.ValorPago,
                                                 endereco, command.Pagador, new Documento(command.PagadorDocumento, command.PagadorDocumentoTipo), email);

            // Relacionamentos
            assinatura.AdicionarPagamento(pagamento);
            estudante.AdicionarAssinatura(assinatura);

            // Aplicar as validacoes
            AddNotifications(nome, documento, email, endereco, estudante, assinatura, pagamento);

            // Checar as notificacoes
            if (Invalid)
            {
                return(new CommandResult(false, "Não foi possível realizar sua assinatura"));
            }

            // Salvar as informacoes
            _repository.CriarAssinatura(estudante);

            // Enviar e-mail de boas vindas
            // Chamar servico de e-mail

            // Retornar informacoes
            return(new CommandResult(true, "Assinatura realizada com sucesso"));
        }