Ejemplo n.º 1
0
        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);
        }