Exemplo n.º 1
0
        private async Task SalvarUsuarioCache(RetornoUsuarioCoreSSO usuarioCoreSSO)
        {
            if (usuarioCoreSSO != null)
            {
                try
                {
                    var chaveUsuarioIdCache  = $"{USUARIOPORID}-{usuarioCoreSSO.UsuId}";
                    var chaveUsuarioCpfCache = $"{USUARIOPORCPF}-{usuarioCoreSSO.Cpf}";

                    await Task.WhenAll(
                        cacheRepositorio.SalvarAsync(chaveUsuarioIdCache, usuarioCoreSSO),
                        cacheRepositorio.SalvarAsync(chaveUsuarioCpfCache, usuarioCoreSSO)
                        );
                }
                catch (Exception ex)
                {
                    SentrySdk.CaptureException(ex);
                    throw ex;
                }
            }
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
0
        public async Task CriaUsuarioDispositivo(long usuarioId, string dispositivoId)
        {
            try
            {
                using var conn = new NpgsqlConnection(ConnectionStrings.Conexao);
                conn.Open();
                var dataHoraAtual = DateTime.Now;
                await conn.ExecuteAsync(
                    @"INSERT INTO public.usuario_dispositivo
                          (usuario_id, codigo_dispositivo, criadoem)
                           VALUES(@usuarioId, @dispositivoId , @dataHoraAtual ); ", new { usuarioId, dispositivoId, dataHoraAtual });

                conn.Close();

                var chaveCache = $"UsuarioDispositivo-{usuarioId}-{dispositivoId}";
                await cacheRepositorio.SalvarAsync(chaveCache, JsonConvert.SerializeObject(new UsuarioDispositivoDto(usuarioId, dispositivoId)), 1080, false);
            }
            catch (Exception ex)
            {
                SentrySdk.CaptureException(ex);
            }
        }