public IActionResult RelatorioAprovados(AgendamentoRelatorioFiltroDto filtro) { filtro.DataInicio ??= DateTime.Now.Date; filtro.DataFim ??= DateTime.Now.Date.AddDays(10); ViewBag.DataInicio = filtro.DataInicio.Value.Date.ToString("yyyy-MM-dd"); ViewBag.DataFim = filtro.DataFim.Value.Date.ToString("yyyy-MM-dd"); ViewBag.Sala = filtro.Sala ?? string.Empty; ViewBag.Usuario = filtro.Usuario ?? string.Empty; ViewBag.TipoLocal = new SelectList(Combos.retornarOpcoesSala(), "Value", "Text", (int)filtro.TipoLocal); ViewBag.Status = new SelectList(Combos.retornarOpcoesStatusAgendamento(), "Value", "Text"); var agendamentos = _agendamentoService.GerarRelatorio(filtro.DataInicio.Value, filtro.DataFim.Value); if (filtro.TipoLocal != EnumTipoSala.Nenhum) { agendamentos = agendamentos.Where(a => a.Sala.Tipo == filtro.TipoLocal); } if (!string.IsNullOrEmpty(filtro.Sala)) { agendamentos = agendamentos.Where(a => a.Sala.IdentificadorSala.ToLower().Contains(filtro.Sala.ToLower())); } if (!string.IsNullOrEmpty(filtro.Usuario)) { agendamentos = agendamentos.Where(a => a.Usuario.Nome.ToLower().Contains(filtro.Usuario.ToLower())); } if (filtro.StatusAgendamento != null) { ViewBag.Status = new SelectList(Combos.retornarOpcoesStatusAgendamento(), "Value", "Text", (int)filtro.StatusAgendamento); agendamentos = agendamentos.Where(a => a.Status == filtro.StatusAgendamento); } var usuariosAprovadores = _usuarioService.ObterPorPerfil(EnumTipoPerfil.Administrador); var retorno = new List <AgendamentoRelatorioDto>(); foreach (var agendamento in agendamentos) { var aprovador = usuariosAprovadores.Where(u => u.Id == agendamento.AprovadorId).FirstOrDefault(); retorno.Add(new AgendamentoRelatorioDto(agendamento, aprovador)); } return(View("RelatorioAprovacao", retorno)); }