예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
        }