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
        }