/// <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)); }
/// <summary> /// Método para validar os processos para adicionar o telefone de usuário /// </summary> /// <param name="_command">Comando de autenticação do usuário</param> /// <returns>Dados salvos ou erros gerados</returns> public ICommandResult Handle(AdicionarTelefoneCommand _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º - Validando se o usuário existe Usuario _usuarioExistente = _repository.BuscarUsuarioPorId(_command.IdUsuario); //Caso o usuário não exista, informamos a mensagem de erro if (_usuarioExistente == null) { return(new GenericCommandResult(false, "Usuário não encontrado", _command.Notifications)); } //3º - Verificando se o usuário procurado não possui um telefone cadastrado if (_usuarioExistente.Telefone != null) { return(new GenericCommandResult(false, "Usuário já possui um telefone cadastrado", _usuarioExistente)); } //4º - Alterando usuário _usuarioExistente.AdicionarTelefone(_command.Telefone); //5º - Salvando as alterações no banco de dados _repository.AlterarUsuario(_usuarioExistente); //Caso não haja erro, adicionamos o telefone ao usuário return(new GenericCommandResult(true, "Telefone adicionado com sucesso", _usuarioExistente)); }
/// <summary> /// Método para validar os processos para alterar 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(AlterarUsuarioCommand _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º - Verificando se o novo email não está repetido com os armazenados na base de dados if (_command.Email != _emailUsuarioExistente.Email) { //Buscando o email no banco de dados var _novoEmailExistente = _repository.BuscarUsuarioPorEmail(_command.Email); //Verificando se há usuários utilizando o novo email informado if (_novoEmailExistente != null) { return(new GenericCommandResult(false, "Este e-mail já está vinculado a uma conta, informe outro email", _command.Notifications)); } } //4º - Atribuir ao objeto usuário a alteração dos dados do mesmo _emailUsuarioExistente.AlterarUsuario(_command.Nome, _command.Email); //5º - Verificar se um novo número de telefone foi adicionado if (!string.IsNullOrEmpty(_command.Telefone)) { //Caso um novo número de telefone seja informado, alteramos a informação _emailUsuarioExistente.AdicionarTelefone(_command.Telefone); } //6º - Verificando se as alterações não contém erros para salvarmos if (_emailUsuarioExistente.Invalid) { return(new GenericCommandResult(false, "Dados inválidos", _command.Notifications)); } //7º - Salvando as informações na base de dados _repository.AlterarUsuario(_emailUsuarioExistente); //Caso esteja tudo certo, alteramos o usuário com os novos dados return(new GenericCommandResult(true, "Dados alterados com sucesso", _emailUsuarioExistente)); }
/// <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)); }
public void AlterarUsuario(UsuarioDTO usuarioDTO) { _usuarioRepository.AlterarUsuario(usuarioDTO); }
public IActionResult AlterarUsuario(UsuarioModel usuarioModel) { _usuarioRepository.AlterarUsuario(usuarioModel); return(Ok()); }