public ActionResult RelAcessosResult(RelAcessosParametros parametros) { if (!ModelState.IsValid) { return(View("RelAcessos", parametros)); } IList <ControleDeAcesso> acessos = acessoDAO.Relatorio(parametros); var modelView = ControleDeAcessoFactory.BuildModelViewList(acessos); if (parametros.GerarPdf == true) { var novoRelatorio = new ViewAsPdf() { ViewName = "RelAcessosResult", IsGrayScale = true, Model = modelView }; return(novoRelatorio); } else { return(View(modelView)); } }
/// <summary> /// Gera dados do relatório de acesso /// </summary> /// <param name="parametros">The parametros.</param> /// <returns></returns> public IList <ControleDeAcesso> Relatorio(RelAcessosParametros parametros) { IList <ControleDeAcesso> acessos; IList <ControleDeAcesso> acessoVisitado = new List <ControleDeAcesso>(); IList <ControleDeAcesso> acessoVisitante = new List <ControleDeAcesso>(); IList <ControleDeAcesso> acessosData = new List <ControleDeAcesso>(); IList <ControleDeAcesso> acessoEmpresa = new List <ControleDeAcesso>(); if (parametros.Visitado != null) { acessoVisitado = session.QueryOver <ControleDeAcesso>() .WhereRestrictionOn(v => v.Visitado) .IsLike(parametros.Visitado, MatchMode.Anywhere) .List(); } if (parametros.Empresa != null) { acessoEmpresa = session.QueryOver <ControleDeAcesso>() .JoinQueryOver(visitante => visitante.Visitante) .WhereRestrictionOn(visitante => visitante.Empresa) .IsLike(parametros.Empresa, MatchMode.Anywhere) .List(); } if (parametros.Visitante != null) { acessoVisitante = session.QueryOver <ControleDeAcesso>() .JoinQueryOver(visitente => visitente.Visitante) .WhereRestrictionOn(visitante => visitante.Nome) .IsLike(parametros.Visitante, MatchMode.Anywhere) .List(); } if (parametros.DataEntradaAte != null || parametros.DataEntradaDe != null || parametros.DataSaidaAte != null || parametros.DataSaidaDe != null) { if (parametros.DataEntradaDe == null) { parametros.DataEntradaDe = DateTime.MinValue; } if (parametros.DataEntradaAte == null) { parametros.DataEntradaAte = DateTime.MaxValue; } if (parametros.DataSaidaDe == null) { parametros.DataSaidaDe = DateTime.MinValue; } if (parametros.DataSaidaAte == null) { parametros.DataSaidaAte = DateTime.MaxValue; } acessosData = session.QueryOver <ControleDeAcesso>() .WhereRestrictionOn(a => a.DataEntrada) .IsBetween(parametros.DataEntradaDe).And(parametros.DataEntradaAte) .WhereRestrictionOn(a => a.DataSaida) .IsBetween(parametros.DataSaidaDe).And(parametros.DataSaidaAte) .List(); } acessos = acessosData.Union(acessoVisitado) .Union(acessoVisitante) .Union(acessoEmpresa) .ToList(); return(acessos); }