public ActionResult exportFicheirosToCsv(UploadIsentosViewModel viewModel, string sort, string direction, string tabNr) { viewModel.PageSize = 0; if (tabNr == null || tabNr == "") tabNr = "1"; viewModel.SetParameters(int.Parse(tabNr), 1, sort, direction, Request.Params); UploadIsentosViewModel result = getFicheiros(viewModel); List<FicheiroToCsv> ficheirosCsv = new List<FicheiroToCsv>(); foreach (FicheiroIsentos file in result.ficheiros) ficheirosCsv.Add(new FicheiroToCsv { entidade = file.entidade.nome, nome = file.nomeFicheiro, estado = file.estado.descricao.ToString(), dataUpload = file.dataUpload.ToString(), dataAlteracao = file.dataAlteracao.ToString(), username = file.userName }); CsvExport<FicheiroToCsv> csv = new CsvExport<FicheiroToCsv>(ficheirosCsv); byte[] fileBytes = csv.ExportToBytes(); return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "FicheirosIsentos_" + DateTime.Now.ToShortDateString() + ".csv"); }
public ActionResult Index(UploadIsentosViewModel viewModel, string sort, string direction, int? page, string tabNr) { if (tabNr == null || tabNr == "") tabNr = "1"; viewModel.SetParameters(int.Parse(tabNr), page == null ? 1 : page.Value, sort, direction, Request.Params); UploadIsentosViewModel result = getFicheiros(viewModel); return View(result); }
protected UploadIsentosViewModel getFicheiros(UploadIsentosViewModel viewModel) { IPagedList<FicheiroIsentos> ficheirosToView = null; IQueryable<FicheiroIsentos> query = null; UserProfile user = usersRepository.GetUserByIDIncludeEntidade(WebSecurity.CurrentUserId); if (viewModel.entidadeId == default(int)) viewModel.entidadeId = user.entidadeId; int entId = viewModel.entidadeId; if (user.entidade.nome == "ISP" && viewModel.entidadeId == user.entidadeId) entId = -1; if (user.entidade.scope.valor == "GLOBAL") { if(entId == -1) query = ficheirosIsentosRepository.All.OrderByDescending(f => f.dataUpload); else query = ficheirosIsentosRepository.All.Where(f => f.entidadeId == viewModel.entidadeId).OrderByDescending(f => f.dataUpload); this.ViewBag.entidadeId = new SelectList(entidadesRepository.All, "entidadeId", "nome", viewModel.entidadeId); } else { query = ficheirosIsentosRepository.All.Where(f => f.entidadeId == user.entidadeId).OrderByDescending(f => f.dataUpload); this.ViewBag.entidadeId = new SelectList(entidadesRepository.All, "entidadeId", "nome", user.entidadeId); } viewModel.totalNumberOfFicheiros = query.Count(); if (viewModel.PageSize == 0) viewModel.PageSize = viewModel.totalNumberOfFicheiros; switch (viewModel.SortColumn) { case "Entidade": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.entidade.nome).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.entidade.nome).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; case "NomeFicheiro": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.nomeFicheiro).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.nomeFicheiro).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; case "Estado": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.estado).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.estado).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; case "DataUpload": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.dataUpload).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.dataUpload).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; case "DataAlteracao": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.dataAlteracao).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.dataAlteracao).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; case "UserName": if (viewModel.SortDirection == System.ComponentModel.ListSortDirection.Descending) ficheirosToView = query.OrderByDescending(s => s.userName).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); else ficheirosToView = query.OrderBy(s => s.userName).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; default: ficheirosToView = query.OrderByDescending(s => s.dataAlteracao).ToPagedList(viewModel.CurrentPageNumber, viewModel.PageSize); break; } viewModel.ficheiros = ficheirosToView.ToList(); return viewModel; }