Exemple #1
0
        public static User FixFields(this User user)
        {
            user.name     = user.name.ToFirstLetterUpper();
            user.cpf      = user.cpf?.Replace(".", "").Replace("-", "");
            user.password = MD5Cryptography.GetHash(user.password);

            return(user);
        }
Exemple #2
0
        public void Save(Usuario usuario)
        {
            if (string.IsNullOrWhiteSpace(usuario.Nome))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioNomeEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Cpf))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioCpfEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Sexo))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioSexoEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Telefone))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioTelefoneEmpty);
            }
            if (usuario.CidadeId == 0)
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioCidadeEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Email))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioEmailEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Senha))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioSenhaEmpty);
            }

            Usuario usuarioDb = _usuarioRepository.GetBy(u => u.Email.Equals(usuario.Email)).FirstOrDefault();

            if (usuarioDb != null && usuarioDb.Id > 0)
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioEmailExist);
            }

            if (usuario.Id == 0)
            {
                usuario.Senha = MD5Cryptography.Get(usuario.Senha);
                Add(usuario);
            }
            else
            {
                Update(usuario);
            }
        }
Exemple #3
0
        public Usuario Login(Usuario usuario)
        {
            if (string.IsNullOrWhiteSpace(usuario.Email))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioEmailEmpty);
            }
            if (string.IsNullOrWhiteSpace(usuario.Senha))
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioSenhaEmpty);
            }

            usuario.Senha = MD5Cryptography.Get(usuario.Senha);
            Usuario usuarioDb = _usuarioRepository
                                .GetBy(u => u.Email.Equals(usuario.Email) &&
                                       u.Senha.Equals(usuario.Senha)).FirstOrDefault();

            if (usuarioDb == null || usuarioDb.Id == 0)
            {
                throw new ProjetoTesteException(ProjetoTesteExceptionMessage.UsuarioInvalid);
            }

            return(usuarioDb);
        }
Exemple #4
0
        public AuthenticateDTO Authenticate(LoginDTO dto)
        {
            if (!_validator.IsValidLoginDTO(dto))
            {
                throw new InvalidUserException(_validator.ValidationResult);
            }

            User user = _repository.FindByEmailAndPassword(dto.email, MD5Cryptography.GetHash(dto.password));

            if (user == null)
            {
                throw new UserNotFoundException("Email e/ou senha inválidos!");
            }

            AuthenticateDTO authenticate = _mapper.Map <AuthenticateDTO>(user);

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(Settings.Secret);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Email, authenticate.email),
                    new Claim(ClaimTypes.Role, authenticate.role)
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            authenticate.token     = tokenHandler.WriteToken(token);
            authenticate.expiresAt = tokenDescriptor.Expires;

            return(authenticate);
        }