public string GerarTokenSenha(int usuarioId) { try { if (usuarioId <= 0) { throw new ArgumentException("Valor inválido.", "usuarioId"); } var usuario = _usuarioRepository.Get(usuarioId); if (usuario == null) { throw new Exception("Usuario não encontrada."); } var spec = UsuarioSpecifications.ConsulteTokenSenhaUsuario(usuarioId); var tokensSenhas = _tokenSenhaRepository.AllMatching(spec).ToList(); foreach (var item in tokensSenhas.ToList()) { _tokenSenhaRepository.Remove(item); } var tokenSenha = UsuarioFactory.CreateTokenSenha(usuarioId); var validator = EntityValidatorFactory.CreateValidator(); if (!validator.IsValid(tokenSenha)) { throw new AppException(validator.GetInvalidMessages(tokenSenha)); } _tokenSenhaRepository.Add(tokenSenha); _tokenSenhaRepository.Commit(); return(tokenSenha.Token); } catch (Exception ex) { throw ManipuladorDeExcecao.TrateExcecao(ex); } }