void SalvarUsuario(Usuario usuario) { // Validando var validator = EntityValidatorFactory.CreateValidator(); if (!validator.IsValid(usuario)) { throw new ApplicationValidationErrorsException(validator.GetInvalidMessages <Usuario>(usuario)); } var specExisteUsuario = UsuarioSpecifications.ConsultaEmail(usuario.NomeUsuario); if (_usuarioRepository.AllMatching(specExisteUsuario).Any()) { throw new ApplicationValidationErrorsException("Já existe um usuário cadastrado com este e-mail."); } _usuarioRepository.Add(usuario); _usuarioRepository.Commit(); }
void AlterarUsuario(Usuario persistido, Usuario corrente) { // Recupera a validação var validator = EntityValidatorFactory.CreateValidator(); if (!validator.IsValid(corrente)) { throw new ApplicationValidationErrorsException(validator.GetInvalidMessages <Usuario>(corrente)); } var specExisteUsuario = UsuarioSpecifications.ConsultaEmail(corrente.NomeUsuario); if (_usuarioRepository.AllMatching(specExisteUsuario).Where(c => c.Id != persistido.Id).Any()) { throw new ApplicationValidationErrorsException("Já existe um usuário cadastrado com este e-mail."); } _usuarioRepository.Merge(persistido, corrente); _usuarioRepository.Commit(); }
public void AutenticarUsuario(string email, string senha) { try { if (string.IsNullOrWhiteSpace(email)) { throw new ApplicationValidationErrorsException("Digite o email."); } if (string.IsNullOrWhiteSpace(senha)) { throw new ApplicationValidationErrorsException("Digite a senha."); } var spec = UsuarioSpecifications.ConsultaEmail(email); var usuario = _usuarioRepository.AllMatching(spec).SingleOrDefault(); if (usuario == null) { throw new ApplicationValidationErrorsException("Usuário não encontrado."); } if (usuario.Senha != senha) { throw new ApplicationValidationErrorsException("Senha inválida."); } var adapter = TypeAdapterFactory.CreateAdapter(); var usuarioDTO = adapter.Adapt <Usuario, UsuarioDTO>(usuario); ControladorDeSessao.Autenticar(usuarioDTO); } catch (ApplicationValidationErrorsException ex) { throw ex; } catch (Exception ex) { LoggerFactory.CreateLog().LogError(ex); throw new Exception("O servidor não respondeu."); } }