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); }
public ActionResult GetAllByFilter([FromQuery] FiltroLogDto filtro) { var logs = _logService.BuscaPorFiltro(filtro); return(Ok(logs)); }