Ejemplo n.º 1
0
        public PartialViewResult GridPagamentos(string ordenacao, string stringPesquisa, int? pagina, string filtroAtual)
        {
            ViewBag.OrdenacaoAtual = ordenacao;
            ViewBag.NomeOrdenacao = string.IsNullOrEmpty(ordenacao) ? "nome_desc" : "";
            ViewBag.TipoPagamentoOrdernacao = ordenacao == "tipo_pag_desc" ? "tipo_pag_cre" : "tipo_pag_desc";
            ViewBag.ValorOrdernacao = ordenacao == "valor_desc" ? "valor_cre" : "valor_desc";
            ViewBag.DataPagamentoOrdernacao = ordenacao == "data_pag_desc" ? "data_pag_cre" : "data_pag_desc";

            if (stringPesquisa != null)
            {
                pagina = 1;
            }
            else
            {
                stringPesquisa = filtroAtual;
            }

            ViewBag.FiltroAtual = stringPesquisa;

            TempData["Menu"] = "pagamentos";

            List<PagamentoViewModel> pagamentoViewModels = new List<PagamentoViewModel>();

            try
            {
                var pag = _pagamentoAppService.GetAll();
                pagamentoViewModels = Mapper.Map<List<Pagamento>, List<PagamentoViewModel>>(_pagamentoAppService.GetAll());
            }
            catch (DbEntityValidationException ex)
            {
                string errors = "";
                foreach (var eve in ex.EntityValidationErrors)
                {
                    errors += "Entity of type " + eve.Entry.Entity.GetType().Name + " in state " + eve.Entry.State + " has the following validation errors:\n";
                    foreach (var ve in eve.ValidationErrors)
                    {
                        errors += "- Property: " + ve.PropertyName + ", Error: " + ve.ErrorMessage + "\n";
                    }
                }
                throw new Exception(errors);
            }
            catch (AutoMapperMappingException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            switch (ordenacao)
            {
                case "nome_desc":
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.Funcionario.Nome).ToList();
                    break;
                case "nome_cre":
                    pagamentoViewModels = pagamentoViewModels.OrderBy(f => f.Funcionario.Nome).ToList();
                    break;
                case "tipo_pag_desc":
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.TipoPagamento.Descricao).ToList();
                    break;
                case "tipo_pag_cre":
                    pagamentoViewModels = pagamentoViewModels.OrderBy(f => f.TipoPagamento.Descricao).ToList();
                    break;
                case "data_pag_desc":
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.DataPagamento).ToList();
                    break;
                case "data_pag_cre":
                    pagamentoViewModels = pagamentoViewModels.OrderBy(f => f.DataPagamento).ToList();
                    break;
                case "setor_desc":
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.Funcionario.Setor).ToList();
                    break;
                case "setor_cre":
                    pagamentoViewModels = pagamentoViewModels.OrderBy(f => f.Funcionario.Setor).ToList();
                    break;
                case "valor_desc":
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.Valor).ToList();
                    break;
                case "valor_cre":
                    pagamentoViewModels = pagamentoViewModels.OrderBy(f => f.Valor).ToList();
                    break;
                default:
                    pagamentoViewModels = pagamentoViewModels.OrderByDescending(f => f.Funcionario.Nome).ToList();
                    break;
            }

            int paginaTamanho = 5;
            int paginaNumero = (pagina ?? 1);

            return PartialView(pagamentoViewModels.ToPagedList(paginaNumero, paginaTamanho));
        }
 // GET: Pagamento
 public ActionResult Index()
 {
     return(View(_app.GetAll()));
 }