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); }
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); } }
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); }
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); }