public async Task <RetornoUsuarioCoreSSO> ObterPorId(Guid id) { try { var chaveUsuarioIdCache = $"{USUARIOPORID}-{id}"; var usuarioCoreSSO = cacheRepositorio.Obter <RetornoUsuarioCoreSSO>(chaveUsuarioIdCache); if (usuarioCoreSSO == null) { using (var conn = new SqlConnection(ConnectionStrings.ConexaoCoreSSO)) { conn.Open(); var consulta = @" SELECT u.usu_id usuId,u.usu_senha as senha, u.usu_situacao as status, u.usu_criptografia as TipoCriptografia, u.usu_login as Cpf FROM sys_usuario u WHERE u.usu_id = @id"; usuarioCoreSSO = await conn.QueryFirstOrDefaultAsync <RetornoUsuarioCoreSSO>(consulta, new { id }); await SalvarUsuarioCache(usuarioCoreSSO); } } return(usuarioCoreSSO); } catch (Exception ex) { SentrySdk.CaptureException(ex); throw ex; } }
public async Task <bool> Handle(VerificaPalavraProibidaPodePersistirCommand request, CancellationToken cancellationToken) { var palavrasBloqueadas = new string[] { }; var chaveCache = $"palavras-bloqueadas"; var cachePalavrasBloqueadas = cacheRepositorio.Obter(chaveCache); if (cachePalavrasBloqueadas == null) { palavrasBloqueadas = await mediator.Send(new ObterPalavrasProibidasQuery()); if (palavrasBloqueadas == null || !palavrasBloqueadas.Any()) { return(true); } await cacheRepositorio.SalvarAsync(chaveCache, palavrasBloqueadas); } else { palavrasBloqueadas = JsonConvert.DeserializeObject <string[]>(cachePalavrasBloqueadas); } var palavrasTratadas = request.Texto.ToLower(); var listaPalavrasBloqueadas = palavrasBloqueadas.Select(i => i.ToLower()).ToList(); var palavrasProibidas = string.Join("|", listaPalavrasBloqueadas); string pattern = $@"\b(\w*({palavrasProibidas})\w*)\b"; var m = Regex.Matches(palavrasTratadas, pattern, RegexOptions.IgnoreCase); if (m.Count() > 0) { return(false); } return(true); }