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)); }