コード例 #1
0
        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);
            }
        }