public static IQueryable<Pessoa> GetBaseQuery(SBSCEntities db, PessoaSearchModel searchModel) { IQueryable<Pessoa> query = db.Pessoa.Where(q => !q.IsSistema); if (!string.IsNullOrEmpty(searchModel.Search)) { var term = searchModel.Search.Trim(); query = from q in query where q.Nome.Contains(term) || q.Login.Contains(term) select q; } return query; }
public ActionResult EmitirReportPessoas(PessoaSearchModel searchModel) { var query = PessoasModel.GetBaseQuery(db, searchModel).OrderBy(q => q.Nome); var model = new PessoaSearchViewModel { SearchModel = searchModel, Termo = searchModel.Search, FoundObjects = query.Count(), Objetos = (from objeto in query.ToList() let totalVinculos = PessoasModel.GetTotalByItemLinkedRecords(db, objeto.Id) select new PessoaViewModel { Id = objeto.Id, Nome = objeto.Nome, CodigoMatricula = objeto.CodigoMatricula, Login = objeto.Login, DtCadastro = objeto.DtHrCadastro, DtCadastroText = objeto.DtHrCadastro.ToShortDateString(), DtEdicao = objeto.DtHrEdicao, DtEdicaoText = objeto.DtHrEdicao.HasValue ? objeto.DtHrEdicao.Value.ToShortDateString() : string.Empty, TotalReservas = totalVinculos.Item1, TotalEmprestimos = totalVinculos.Item2 }).OrderBy(ob => ob.Nome).ToList() }; ViewBag.Title = string.Format("Relatório de {0}", "pessoas"); ViewBag.Subtitle = string.Format(Constantes.GeradoEm_, Genericos.GetDateTimeFromBrazil()); return new ViewAsPdf("PessoaSearchResultList", model) { FileName = "RelatorioPessoas.pdf", PageSize = Size.A4, PageOrientation = Orientation.Landscape, PageMargins = { Top = 1, Left = 1, Right = 1, Bottom = 1 } }; }