Ejemplo n.º 1
0
        public IList <ListarLogDto> BuscaPorFiltro(FiltroLogDto filtro)
        {
            var query = _context.Log.Where(log => log.IdAmbiente == filtro.IdAmbiente);

            if (!string.IsNullOrWhiteSpace(filtro.PesquisaCampo))
            {
                if (filtro.BuscarPor == BuscaEnum.Descricao)
                {
                    query = query.Where(log => log.Descricao.Contains(filtro.PesquisaCampo));
                }

                if (filtro.BuscarPor == BuscaEnum.Level)
                {
                    query = query.Where(log => log.TipoLog.Tipo.Contains(filtro.PesquisaCampo));
                }

                if (filtro.BuscarPor == BuscaEnum.Origem)
                {
                    query = query.Where(log => log.Host.Contains(filtro.PesquisaCampo));
                }
            }

            if (filtro.OrdenarPor == OrdenacaoEnum.Frequencia)
            {
                query = query.OrderBy(log => log.Eventos);
            }

            if (filtro.OrdenarPor == OrdenacaoEnum.Level)
            {
                query = query
                        .Include(log => log.TipoLog)
                        .OrderBy(log => log.TipoLog.Tipo);
            }

            var logs    = query.ToList();
            var logsDto = new List <ListarLogDto>();

            logs.ForEach(l =>
            {
                var dto = new ListarLogDto
                {
                    IdLog     = l.IdLog,
                    Descricao = l.Descricao,
                    Level     = l.TipoLog.Tipo,
                    Eventos   = l.Eventos
                };

                logsDto.Add(dto);
            });

            return(logsDto);
        }
Ejemplo n.º 2
0
        public ActionResult GetAllByFilter([FromQuery] FiltroLogDto filtro)
        {
            var logs = _logService.BuscaPorFiltro(filtro);

            return(Ok(logs));
        }