Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
0
        public void AtivarAssinaturaInvalido()
        {
            var pagamento = new PagamentoPayPal("12345", DateTime.Now, DateTime.Now.AddDays(5), 10, 10, _endereco, _documento, "SoftClever", _email);

            _assinatura.AdicionarPagamento(pagamento);

            _aluno.AdicionarAssinatura(_assinatura);
            _aluno.AdicionarAssinatura(_assinatura);

            Assert.IsTrue(_aluno.Invalid);
        }
Exemplo n.º 4
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."));
        }
Exemplo n.º 5
0
        public void DeveRetornarSucessoQuandoAdicionarAssinatura()
        {
            var subscription = new Assinatura(null);
            var payment      = new PagamentoPaypal(_email, "12345678", DateTime.Now, DateTime.Now.AddDays(5), 10, 10, "Wayne Industries ACME", _document, _address);

            subscription.AdicionarPagamento(payment);
            _student.AdicionaAssinatura(subscription);
            Assert.IsTrue(_student.Valid);
        }
Exemplo n.º 6
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"));
        }
        public IResultadoComando Manipula(ComandoCriarAssinaturaBoleto comando)
        {
            // Fail fast Validations
            comando.Validar();
            if (comando.Invalid)
            {
                AddNotifications(comando);
                return(new ResultadoComando(false, "Não foi possivel realizar sua assinatura"));
            }

            // Verificar se o Documento já está cadastrado
            if (_repositorio.DocumentoExiste(comando.NumeroDoDocumento))
            {
                AddNotification("Documento", "Este CPF já está em uso");
            }

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

            // Gerar os VOs
            var name     = new Nome(comando.PrimeiroNome, comando.Sobrenome);
            var document = new Documento(comando.NumeroDoDocumento, ETipoDocumento.CPF);
            var email    = new Email(comando.Email);
            var address  = new Endereco(comando.Rua, comando.Numero, null, null, comando.Bairro, comando.Cidade, comando.Estado);

            // Gerar as Entidades
            var student      = new Estudante(name, document, email);
            var subscription = new Assinatura(null);
            var pagamento    = new PagamentoBoleto(comando.CodigoDeBarras, comando.NossoNumero, new Email(comando.Email), comando.DataDePagamento, comando.DataDeExpiracao, comando.Total, comando.TotalPago, comando.Pagante, new Documento(comando.NumeroDoDocumento, ETipoDocumento.CPF), null);

            // Relacionamentos
            subscription.AdicionarPagamento(pagamento);
            student.AdicionaAssinatura(subscription);

            //Agrupar as Validações
            AddNotifications(name, document, email, address, student, subscription, pagamento);

            // Checar as notificações
            if (Invalid)
            {
                return(new ResultadoComando(false, "Não foi possível realizar sua assinatura"));
            }

            // Salvar as Informações
            _repositorio.CriarAssinatura(student);

            // Enviar E-mail de boas vindas
            _servicoDeEmail.Enviar(student.Nome.ToString(), student.Email.Endereco, "Bem vindo à Simasoft Holdings", "Seja bem vindo! Sua assinatura foi criada");

            //Retornar informações
            return(new ResultadoComando(true, "Cadastro efetuado com sucesso!"));
        }
Exemplo n.º 8
0
        public void DeveRetornarErroQuandoTiverAssinaturaAtiva()
        {
            var subscription = new Assinatura(null);
            var payment      = new PagamentoPaypal(_email, "12345678", DateTime.Now, DateTime.Now.AddDays(5), 10, 10, "Wayne Industries ACME", _document, _address);

            subscription.AdicionarPagamento(payment);
            _student.AdicionaAssinatura(subscription);
            _student.AdicionaAssinatura(subscription);

            //Green(2)
            Assert.IsTrue(_student.Invalid);
            //Red (1)
            //Assert.Fail();
        }
Exemplo n.º 9
0
        public void RetornarSucessoQuandoAdicionarAssinatura()
        {
            var assinatura = new Assinatura(null);
            var pagamento  = new PagamentoPayPal(
                "123456",
                DateTime.Now,
                DateTime.Now.AddDays(5),
                100,
                100,
                "Lucian AF",
                _documento,
                _endereco,
                _email);

            assinatura.AdicionarPagamento(pagamento);
            _aluno.AdicionarAssinatura(assinatura);
            Assert.IsTrue(_aluno.Valid);
        }
        public IResultadoComando Cabecalho(ComandoCriarAssinaturaCredito comando)
        {
            #region Verifica falhas nas validações
            comando.Validate();
            if (comando.Invalid)
            {
                AddNotifications(comando);
                return(new ResultadoComando(false, "Não foi possivel realizar seu cadastro"));
            }
            #endregion

            #region Verifica se o CPF já esta cadastrado
            if (_alunoRepositorio.ExisteDocumento(comando.Documento))
            {
                AddNotification("Documento", "O C`F já esta em uso!");
            }
            #endregion

            #region Verificar se o Email ja esta cadastrado
            if (_alunoRepositorio.ExisteEmail(comando.Email))
            {
                AddNotification("Email", "O email já esta em uso!");
            }
            #endregion

            #region Gerar os VOs
            var nome      = new Nome(comando.PrimeiroNome, comando.UltimoNome);
            var documento = new Documento(comando.Documento, ETipoDocumentos.CPF);
            var email     = new Email(comando.Email);
            var endereco  = new Endereco(
                comando.Rua,
                comando.Numero,
                comando.Complemento,
                comando.Bairro,
                comando.Cidade,
                comando.Estado,
                comando.CEP
                );
            #endregion

            #region Gerar as Entidades
            var aluno      = new Aluno(nome, documento, email);
            var assinatura = new Assinatura(DateTime.Now.AddMonths(1));
            var pagamento  = new PagamentoCartaoDeCredito(
                comando.NomeTitular,
                comando.NumeroDoCartao,
                comando.UltimaTransacao,
                comando.DataPagamento,
                comando.DataExpiracao,
                comando.Total,
                comando.TotalPagamento,
                endereco,
                documento,
                comando.NomePropretario,
                email
                );
            #endregion

            #region Relacionamento
            assinatura.AdicionarPagamento(pagamento);
            aluno.AdicionarAssinatura(assinatura);
            #endregion

            #region Agrupar as validações
            AddNotifications(nome, documento, email, endereco, aluno, assinatura, email);
            #endregion

            #region Checar validações
            if (Invalid)
            {
                return(new ResultadoComando(false, "Não foi possivel realizar sua assinatura"));
            }
            #endregion

            #region Salvar as informações
            _alunoRepositorio.CriarAssinatura(aluno);
            #endregion

            #region Enviar o email de boas vindas
            _servicoEmail.Enviar(
                aluno.Nome.ToString(),
                aluno.Email.Emdereco,
                "Bem vindo a nosso site!",
                "Sua assinatura foi criada com successo"
                );
            #endregion

            #region Retornar informações
            return(new ResultadoComando(true, "Assinatura realizada com sucesso"));

            #endregion
        }
        public IComandoResultado Manipulador(ComandoCriarAssinaturaBoleto comando)
        {
            // Fail Fast Validate
            comando.Validar();
            if (comando.Invalid)
            {
                AddNotifications(comando);
                return(new ComandoResultado(false, "Não foi possível realizar sua assinatura", comando));
            }

            // Verificar se Documento já esta Cadastrado
            if (_alunoRepositorio.DocumentoExiste(comando.Documento))
            {
                AddNotification("Documento", "Este documento já está em uso!");
            }

            // Verificar se Email ja esta cadastrado
            if (_alunoRepositorio.EmailExiste(comando.Documento))
            {
                AddNotification("Email", "Este e-mail já está em uso!");
            }

            //  Gerar os VOs (Valor Objeto)
            var documento = new Documento(comando.Documento, eTipoDocumento.CPF);
            var email     = new Email(comando.Email);
            var nome      = new Nome(comando.PrimeiroNome, comando.Sobrenome);
            var endereco  = new Endereco(comando.Descricao, comando.Numero, comando.Bairro, comando.Cidade, comando.Estado, comando.Pais, comando.Cep);

            // Gerar Entidades
            var aluno      = new Aluno(nome, documento, email);
            var assinatura = new Assinatura(DateTime.Now.AddMonths(1));
            var pagamento  = new PagamentoBoleto(
                comando.CodigoBarras,
                comando.NossoNumero,
                comando.DataPagamento,
                comando.DataExpiracao,
                comando.ValorTotal,
                comando.ValorPago,
                comando.Pagador,
                new Documento(comando.PagadorDocumento, comando.PagadorTipoDocumento),
                endereco, // Endereco correto é do pagador (comando. Informacoes do pagador)
                email);

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

            // Aplicar Validações
            AddNotifications(nome, documento, email, endereco, aluno, assinatura, pagamento);

            // Checar Notificacoes
            if (Invalid)
            {
                return(new ComandoResultado(false, "Não foi possível realizar sua assinatura!", aluno));
            }

            // Salvar Informacoes
            _alunoRepositorio.CriarAssinatura(aluno);

            // Enviar Email de boas-vindas
            _emailServico.Enviar(aluno.Nome.ToString(), aluno.Email.Endereco, "Bem Vindo!", "Sua assinatura foi criada!");

            // Retornar informacoes
            return(new ComandoResultado(true, "Assinatura realizada com sucesso!", aluno));
        }
Exemplo n.º 12
0
        public ICommandResult Handle(CriarPayPalAssinaturaCommand command)
        {
            //  se usar Fail Fast Validations usar o código abaixo
            // command.Validar();
            // if(command.Invalid)
            // {
            //     AddNotifications(command);
            //     return new CommandResult(false, "Não foi possível realizar sua assinatura");
            // }

            //  Verifica se o Documento já está cadastrado
            if (_alunoRepository.DocumentoExiste(command.Documento))
            {
                AddNotification("Documento", "Este CPF já está em uso");
            }

            //  Verifica se o E-mail já está cadastrado
            if (_alunoRepository.EmailExiste(command.Email))
            {
                AddNotification("Email", "Este CPF já está em uso");
            }

            // Gerar os VOs
            var nome      = new Nome(command.PrimeiroNome, command.SegundoNome);
            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 aluno      = new Aluno(nome, documento, email);
            var assinatura = new Assinatura(DateTime.Now.AddMonths(1));
            //  Tipos de Pagamento só muda a implementação do pagamento
            var pagamento = new PayPalPagamento(
                command.CodigoTransacao,
                command.DataPagamento,
                command.DataExpiracao,
                command.Total,
                command.TotalPago,
                command.Proprietario,
                new Documento(command.DocumentoDonoCartao, command.TipoDocumentoCartao),
                endereco,
                email
                );

            //  Realacionamentos
            assinatura.AdicionarPagamento(pagamento);
            aluno.AdicionarAssinatura(assinatura);

            //  Agrupar as Validações
            AddNotifications(nome, documento, email, endereco, aluno, assinatura, pagamento);

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

            // Salvar as Informações
            _alunoRepository.CriarAssinatura(aluno);

            //  Enviar E-mail de boas vindas
            _emailService.Enviar(aluno.Nome.ToString(), aluno.Email.EmailEnd,
                                 "Bem vindo ao martinsnelson.io",
                                 "Assinatura Criada");

            //  Retornar Informações
            return(new CommandResult(true, "Assinatura realizada com sucesso"));
        }