Exemplo n.º 1
0
        public IResultadoComando Manipular(InserirEmpresaComando comando)
        {
            if (comando == null)
            {
                AddNotification("Dados", "Os dados para inclusão da empresa não foram informados corretamente.");
                return(null);
            }

            if (_usuarioEmpresaRepositorio.VerificarSeUsuarioExistePorEmail(comando.email))
            {
                AddNotification("Email", "Já existe empresa e usuário associados ao e-mail informado.");
                return(null);
            }

            Empresa        empresa = _empresaComandoMap.CriarEmpresa(comando);
            UsuarioEmpresa usuario = _empresaComandoMap.CriarUsuario(comando, empresa);

            AddNotifications(empresa.Notifications);
            AddNotifications(usuario.Notifications);

            if (!IsValid())
            {
                return(null);
            }

            _empresaRepositorio.Adicionar(empresa);
            _usuarioEmpresaRepositorio.Adicionar(usuario);
            _emailServico.Enviar(usuario.Nome.nome, usuario.Email.EnderecoEmail,
                                 string.Format(EmailTemplates.NovoUsuarioEmpresaAssunto, usuario.Nome.nome),
                                 string.Format(EmailTemplates.NovoUsuarioEmpresaCorpo, usuario.Nome.nome, usuario.Email.EnderecoEmail, empresa.NomeEmpresa.nome));

            return(new InserirEmpresaResultadoComando {
                EmpresaId = empresa.Id
            });
        }
        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.º 3
0
        private async Task EnvioEmail(ResponsavelAlunoEolResumidoDto usuarioEol, Dominio.Entidades.Usuario usuario)
        {
            try
            {
                string caminho      = $"{Directory.GetCurrentDirectory()}/wwwroot/ModelosEmail/RecuperacaoSenha.html";
                var    textoArquivo = await File.ReadAllTextAsync(caminho);

                var urlFrontEnd = variaveisGlobaisOptions.UrlArquivosEstaticos;
                var textoEmail  = textoArquivo
                                  .Replace("#NOME", usuarioEol.Nome)
                                  .Replace("#CODIGO", usuario.Token)
                                  .Replace("#URL_BASE#", urlFrontEnd)
                                  .Replace("#VALIDADE", usuario.ValidadeToken?.ToString("dd/MM/yyyy HH:mm"));

                await emailServico.Enviar(usuarioEol.Nome, usuarioEol.Email, "Redefinição de Senha Escola Aqui", textoEmail);
            }
            catch (Exception ex)
            {
                SentrySdk.CaptureException(ex);
                throw new NegocioException("Não foi possivel realizar o envio de email, por favor contate o suporte");
            }
        }
        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));
        }