Ejemplo n.º 1
0
        public IEnumerable <RelatorioDeAcessoViewModel> RelatorioDeAcesso(RelatoriosDeAcessoFormViewModel model)
        {
            var acessos = (from x in _logRepository.Get()
                           where (model.CargoId == null || x.Usuario.CargoId == model.CargoId) &&
                           (model.DataInicio == null || x.DtInclusao >= model.DataInicio) &&
                           (model.DataFim == null || x.DtInclusao <= model.DataFim) &&
                           (model.TipoArea == null || x.Area == model.TipoArea.ToString()) &&
                           (!string.IsNullOrEmpty(x.Controller))
                           select new
            {
                DtAcesso =
                    model.TipoAcesso == TipoAcesso.PorPagina
                                       ? x.DtInclusao
                                       : DbFunctions.TruncateTime(x.DtInclusao),
                Pagina = (string.IsNullOrEmpty(x.Area) ? "" : x.Area) + "/" + x.Controller + "/" + x.Action
            }).Distinct().ToList();

            return(from x in acessos
                   group x by new
            {
                DtAcesso = model.TipoAcesso == TipoAcesso.PorPagina ? x.DtAcesso.Value.ToString("dd/MM/yyyy") : "",
                x.Pagina
            }
                   into g
                   select new RelatorioDeAcessoViewModel
            {
                DtAcesso = g.Key.DtAcesso,
                Pagina = g.Key.Pagina,
                Quantidade = g.Count()
            });
        }
        public void BaixarExcelRelatorioDeAcesso(RelatoriosDeAcessoFormViewModel model)
        {
            var relatorio = _logApp.RelatorioDeAcesso(model);
            var gv        = new GridView {
                DataSource = relatorio.ToList()
            };

            gv.DataBind();
            Excel.BaixarExcel(gv, "Relatorio_De_Acesso");
        }
        public async Task <ActionResult> ListaRelatorioDeAcesso(RelatoriosDeAcessoFormViewModel model)
        {
            if (model.TipoAcesso == null)
            {
                model.TipoAcesso = TipoAcesso.Unicos;
            }

            var relatorio = new GridRelatorioDeAcessosViewModel
            {
                Relatorio  = _logApp.RelatorioDeAcesso(model),
                TipoAcesso = model.TipoAcesso.Value
            };

            return(PartialView("ListaRelatorioDeAcesso", relatorio));
        }