public ICommandResult Handler(CadastrarAlunoCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos!", command.Notifications));
            }

            var alunoExiste = _alunoRepositorio.BuscarPorEmail(command.Email);

            if (alunoExiste != null)
            {
                return(new GenericCommandResult(false, "Email já cadastrado", null));
            }

            command.Senha = Senha.CriptografarSenha(command.Senha);

            var aluno = new Aluno(command.Nome, command.Telefone, command.Email, command.Rg, command.Rg, command.Cpf, command.DataNascimento, command.FotoAluno);

            if (aluno.Valid)
            {
                _alunoRepositorio.Cadastrar(aluno);
            }

            _ = SendEmailGrid.EnviarEmail(aluno.Email, aluno.NomeUsuario,
                                          "Criação de conta na plataforma carometro", "Seu cadastro foi realizado",
                                          "Seu cadastro foi realizado", "Olá, é um grande prazer receber você na nossa plataforma Carometro, para acessar nossa plataforma basta inserir seu email de contrato para os pametros de email e senha"
                                          );

            return(new GenericCommandResult(true, "Usuário criado com sucesso!", aluno));
        }
        public ICommandResult Handler(CadastrarProfessorCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos!", command.Notifications));
            }

            var professorExiste = _professorRepositorio.BuscarProfessorPorEmail(command.Email);

            if (professorExiste != null)
            {
                return(new GenericCommandResult(false, "Email já cadastrado", null));
            }

            command.Senha = Senha.CriptografarSenha(command.Senha);

            var professor = new Professor(command.Nome, command.Email, command.Email, command.Telefone, command.FotoProfessor);

            if (professor.Valid)
            {
                _professorRepositorio.AdicionarProfessor(professor);
            }

            _ = SendEmailGrid.EnviarEmail(professor.Email, professor.NomeUsuario,
                                          "Criação de conta na plataforma carometro", "Seu cadastro foi realizado",
                                          "Seu cadastro foi realizado", "Olá, é um grande prazer receber você na nossa plataforma Carometro, para acessar nossa plataforma basta inserir seu email de contrato para os pametros de email e senha"
                                          );

            return(new GenericCommandResult(true, "Professor cadastrado com sucesso", professor));
        }
Пример #3
0
        /// <summary>
        /// Método para validar os processos para alterar a senha de um usuário
        /// </summary>
        /// <param name="_command">Comando de alteração do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarSenhaCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário pertence a nossa base de dados
            var _emailUsuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email não exista, informe ao usuário que o usuário informado não existe
            if (_emailUsuarioExistente == null)
            {
                return(new GenericCommandResult(false, "Conta de email não encontrada, informe um e-mail cadastrado", _command.Notifications));
            }

            //3º - Enviando um email de confirmação da nova senha
            _ = SendEmailGrid.EnviarEmail(_emailUsuarioExistente.Email, _emailUsuarioExistente.Nome, "Confirmação de alteração de senha", "Senha alterada com sucesso!", "Conforme a solicitação da alteração de senha, confirmamos que sua senha foi alterada com sucesso, faça o login na plataforma inserindo os novos dados, muito obrigado!", null);

            //4º - Encriptografando a nova senha
            _command.Senha = HashDeSenha.EncriptografarSenha(_command.Senha);

            //5º - Passando para o objeto alterar os seus dados
            _emailUsuarioExistente.AlterarSenha(_command.Senha);

            //6º - Salvando os dados na base de dados
            _repository.AlterarUsuario(_emailUsuarioExistente);

            //Caso não haja erros, alteramos as informações
            return(new GenericCommandResult(true, "Senha alterada com sucesso", _emailUsuarioExistente));
        }
Пример #4
0
        public ICommandResult Handler(AlterarSenhaCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos", command.Notifications));
            }

            var usuarioAdminExiste = _adminRepositorio.BuscarPorEmail(command.Email);

            if (usuarioAdminExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioAdminExiste.Email, usuarioAdminExiste.NomeUsuario,
                                              "Confirmação de alteração de senha", "Senha alterada com sucesso!", "Conforme a solicitação da alteração de senha, confirmamos que sua senha foi alterada com sucesso, faça o login na plataforma inserindo os novos dados, muito obrigado!", null);

                command.Senha = Senha.CriptografarSenha(command.Senha);

                usuarioAdminExiste.Alterarsenha(command.Senha);

                _adminRepositorio.Alterar(usuarioAdminExiste);

                return(new GenericCommandResult(true, "Senha alterada com sucesso", usuarioAdminExiste));
            }

            var usuarioAlunoExiste = _alunoRepositorio.BuscarPorEmail(command.Email);

            if (usuarioAlunoExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioAlunoExiste.Email, usuarioAlunoExiste.NomeUsuario,
                                              "Confirmação de alteração de senha", "Senha alterada com sucesso!", "Conforme a solicitação da alteração de senha, confirmamos que sua senha foi alterada com sucesso, faça o login na plataforma inserindo os novos dados, muito obrigado!", null);

                command.Senha = Senha.CriptografarSenha(command.Senha);

                usuarioAlunoExiste.Alterarsenha(command.Senha);

                _alunoRepositorio.Alterar(usuarioAlunoExiste);

                return(new GenericCommandResult(true, "Senha alterada com sucesso", usuarioAlunoExiste));
            }

            var usuarioProfessorExiste = _professorRepositorio.BuscarProfessorPorEmail(command.Email);

            if (usuarioProfessorExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioAlunoExiste.Email, usuarioAlunoExiste.NomeUsuario,
                                              "Confirmação de alteração de senha", "Senha alterada com sucesso!", "Conforme a solicitação da alteração de senha, confirmamos que sua senha foi alterada com sucesso, faça o login na plataforma inserindo os novos dados, muito obrigado!", null);

                command.Senha = Senha.CriptografarSenha(command.Senha);

                usuarioProfessorExiste.Alterarsenha(command.Senha);

                _professorRepositorio.AlterarProfessor(usuarioProfessorExiste);

                return(new GenericCommandResult(true, "Senha alterada com sucesso", usuarioProfessorExiste));
            }

            return(new GenericCommandResult(true, "Usuário não encontrado", null));
        }
Пример #5
0
        public ICommandResult Handler(EsqueciSenhaCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos", command.Notifications));
            }

            var novaSenha = Senha.Gerar();

            var novaSenhaEncriptografada = Senha.CriptografarSenha(novaSenha);


            var usuarioAdminExiste = _adminRepositorio.BuscarPorEmail(command.Email);

            if (usuarioAdminExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioAdminExiste.Email, usuarioAdminExiste.NomeUsuario,
                                              "Confirmação de nova senha", "Senha alterada com sucesso!", $"Conforme a solicitação da alteração de senha, nos da plataforma CodeTur disponibizamos uma nova senha para você, faça o login na plataforma inserindo os novos dados e sinta-se a vontade para altera-lá quando precisar, muito obrigado!<br><br>Sua nova senha é: ", novaSenha);

                usuarioAdminExiste.Alterarsenha(novaSenhaEncriptografada);

                _adminRepositorio.Alterar(usuarioAdminExiste);

                return(new GenericCommandResult(true, "Nova senha gerada com sucesso", novaSenha));
            }

            var usuarioAlunoExiste = _alunoRepositorio.BuscarPorEmail(command.Email);

            if (usuarioAlunoExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioAlunoExiste.Email, usuarioAlunoExiste.NomeUsuario,
                                              "Confirmação de nova senha", "Senha alterada com sucesso!", $"Conforme a solicitação da alteração de senha, nos da plataforma CodeTur disponibizamos uma nova senha para você, faça o login na plataforma inserindo os novos dados e sinta-se a vontade para altera-lá quando precisar, muito obrigado!<br><br>Sua nova senha é: ", novaSenha);

                usuarioAlunoExiste.Alterarsenha(novaSenhaEncriptografada);

                _alunoRepositorio.Alterar(usuarioAlunoExiste);

                return(new GenericCommandResult(true, "Nova senha gerada com sucesso", novaSenha));
            }

            var usuarioProfessorExiste = _professorRepositorio.BuscarProfessorPorEmail(command.Email);

            if (usuarioProfessorExiste != null)
            {
                _ = SendEmailGrid.EnviarEmail(usuarioProfessorExiste.Email, usuarioProfessorExiste.NomeUsuario,
                                              "Confirmação de nova senha", "Senha alterada com sucesso!", $"Conforme a solicitação da alteração de senha, nos da plataforma CodeTur disponibizamos uma nova senha para você, faça o login na plataforma inserindo os novos dados e sinta-se a vontade para altera-lá quando precisar, muito obrigado!<br><br>Sua nova senha é: ", novaSenha);

                usuarioProfessorExiste.Alterarsenha(novaSenhaEncriptografada);

                _professorRepositorio.AlterarProfessor(usuarioProfessorExiste);

                return(new GenericCommandResult(true, "Nova senha gerada com sucesso", novaSenha));
            }

            return(new GenericCommandResult(true, "Usuário não encontrado", null));
        }
        /// <summary>
        /// Método para validar os processos para criar um usuário
        /// </summary>
        /// <param name="_command">Comando de criação do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(CriarUsuarioCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário já não pertence a nossa base de dados
            var _emailUsuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email exista, informe ao usuário que o email informado já está em uso
            if (_emailUsuarioExistente != null)
            {
                return(new GenericCommandResult(false, "E-mail já cadastrado, informe um novo e-mail", _command.Notifications));
            }

            //3º - Criptografando a senha informada pelo usuário
            _command.Senha = HashDeSenha.EncriptografarSenha(_command.Senha);

            //4º - Criando uma nova instância de usuário com os dados capturados
            var _usuario = new Usuario(_command.Nome, _command.Email, _command.Senha, _command.TipoPerfil);

            //Verificando se o usuário informou um número de telefone
            if (!string.IsNullOrEmpty(_command.Telefone))
            {
                //Caso sim, atrelar o telefone ao usuário
                _usuario.AdicionarTelefone(_command.Telefone);
            }

            //5º - Validando os dados do usuário
            if (_usuario.Invalid)
            {
                return(new GenericCommandResult(false, "Dados do usuário inválidos", _usuario.Notifications));
            }

            //6º - Enviar um email de notificação para o usuário
            _ = SendEmailGrid.EnviarEmail(_usuario.Email, _usuario.Nome, "Confirmação de cadastro", "Seu cadastro foi realizado", "Olá, é um grande prazer receber você na nossa plataforma CodeTur, esperamos que você possa aproveitar nossos serviços, muito obrigado pelo interesse!", null);

            //7º - Salvando no banco de dados
            _repository.AdicionarUsuario(_usuario);

            return(new GenericCommandResult(true, "Usuário criado com sucesso", _usuario));
        }
        /// <summary>
        /// Método para validar os processos para resetar a senha do usuário
        /// </summary>
        /// <param name="_command">Comando de resetar a senha do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(EsqueciSenhaCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário pertence a nossa base de dados
            var _usuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email não exista, informe ao usuário que o email informado já está em uso
            if (_usuarioExistente == null)
            {
                return(new GenericCommandResult(false, "E-mail não cadastrado, informe um e-mail válido", _command.Notifications));
            }

            //3º - Gerando uma nova senha para o usuário
            var _novaSenha = RandomPassword.GeradorDeSenha();

            //4º - Enviando a nova senha gerada para o email
            _ = SendEmailGrid.EnviarEmail(_usuarioExistente.Email, _usuarioExistente.Nome, "Confirmação de nova senha", "Senha alterada com sucesso!", $"Conforme a solicitação da alteração de senha, nos da plataforma CodeTur disponibizamos uma nova senha para você, faça o login na plataforma inserindo os novos dados e sinta-se a vontade para altera-lá quando precisar, muito obrigado!<br><br>Sua nova senha é: ", _novaSenha);

            //5º - Encriptografando a nova senha
            var _novaSenhaEncriptografada = HashDeSenha.EncriptografarSenha(_novaSenha);

            //6º - Salvar a nova senha no banco de dados
            _usuarioExistente.AlterarSenha(_novaSenhaEncriptografada);

            //7º - Salvando novos dados na base de dados
            _repository.AlterarUsuario(_usuarioExistente);

            //Caso não haja erros, alteramos a senha do usuario
            return(new GenericCommandResult(true, "Nova senha gerada com sucesso", _novaSenha));
        }
Пример #8
0
        public ICommandResult Handler(CadastrarContaCommand command)
        {
            //Verifica se o comando recebido é válido.
            command.Validar();

            //Verifica se os dados são válidos.
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos", command.Notifications));
            }

            //Variável de apoio para validação de email.
            var usuarioExiste = _adminRepositorio.BuscarPorEmail(command.Email);

            //Verifica se o email do usuário já foi cadastrado no banco.
            if (usuarioExiste != null)
            {
                return(new GenericCommandResult(false, "Email já cadastrado", null));
            }

            command.Senha = Senha.CriptografarSenha(command.Senha);

            //Salvar no banco
            var admin = new Admin(command.Nome, command.Email, command.Senha, command.Telefone);

            if (admin.Valid)
            {
                _adminRepositorio.Cadastrar(admin);
            }

            _ = SendEmailGrid.EnviarEmail(admin.Email, admin.NomeUsuario,
                                          "Criação de conta na plataforma carometro", "Seu cadastro foi realizado",
                                          "Seu cadastro foi realizado", "Olá, é um grande prazer receber você na nossa plataforma Carometro, para acessar nossa plataforma basta inserir seu email de contrato para os pametros de email e senha"
                                          );

            return(new GenericCommandResult(true, "Usuário criado com sucesso!", admin));
        }