private GridVM Consultar(string page, string sort, string sortdir, string filtro = null) { if (string.IsNullOrWhiteSpace(filtro)) { where = a => !a.ca_atividadesPublicadas.Any(); } else { int prioridadeOuID; if (int.TryParse(filtro, out prioridadeOuID)) { where = a => !a.ca_atividadesPublicadas.Any() && (a.prioridade == prioridadeOuID || a.id == prioridadeOuID); } else { where = a => !a.ca_atividadesPublicadas.Any() && (a.sistema.Contains(filtro) || a.descricao.Contains(filtro)); } } IQueryable <ca_atividade> atividadesAuxiliar = repositorio.Listar(where) .OrderByDescending(a => a.prioridade).ThenByDescending(a => a.dt_inicio) .ToList() .OrderByDescending(a => a.prioridade).ThenByDescending(a => a.dt_inicio).AsQueryable(); int pagina = 0; int totalRegistros = repositorio.Listar(where).Count(); GridVM grid = new GridVM(); grid.PageLimit = base.pageLimit; grid.PageSize = base.pageSize; if (totalRegistros > base.pageSize) { grid.TotalPages = int.Parse((totalRegistros / base.pageSize).ToString()) + 1; } else { page = "1"; grid.TotalPages = 1; } if (Int32.TryParse(page, out pagina)) { atividadesAuxiliar = atividadesAuxiliar.Skip((pagina - 1) * base.pageSize).Take(base.pageSize); } else { atividadesAuxiliar = atividadesAuxiliar.Take(base.pageSize); } grid.PageIndex = pagina; List <ca_atividadeVM> atividades = new List <ca_atividadeVM>(); foreach (var item in atividadesAuxiliar) { var atividade = new ca_atividadeVM(); atividade.usuario = item.ca_usuario == null ? "Não atribuído" : item.ca_usuario.nome; atividade.descricao = "<div style='width: 400px;'>" + item.id + " - " + item.descricao.Replace("\r\n", "<br />") + "</div>"; atividade.prioridade = item.prioridade; atividade.dt_inicio = item.dt_inicio.HasValue ? item.dt_inicio.Value.ToShortDateString() : "Não iniciado"; atividade.dt_fim = item.dt_inicio.HasValue ? (item.dt_fim.HasValue ? item.dt_fim.Value.ToShortDateString() : "Não finalizado") : ""; atividade.sistema = item.sistema; atividade.operacoes = "<span style='padding-right: 3px;'><a href='#' class='btn btn-info' href='#' onclick='alterar(" + item.id + ");'><i class='icon-white icon-edit'></i></a></span>" + "<br /><br />" + "<span style='padding-right: 3px;'><a href='#' class='btn btn-danger' onclick='excluir(" + item.id + ");'><i class='icon-white icon-trash'></i></a></span>"; atividades.Add(atividade); } grid.Lista = atividades; grid.Tipo = typeof(ca_atividadeVM); return(grid); }
private GridVM Consultar(string page, string sort, string sortdir, string filtro = null) { if (string.IsNullOrWhiteSpace(filtro)) { where = p => true; } else { where = p => p.sistema.Contains(filtro) || p.ca_atividadesPublicadas.Count(ap => ap.ca_atividade.descricao.Contains(filtro)) > 0; } GridVM grid = new GridVM(); List <ca_publicacaoVM> publicacoes = new List <ca_publicacaoVM>(); IQueryable <ca_publicacao> aux; aux = repositorio.Listar(where).OrderBy(u => u.dt_publicacao); int pagina = 0; int totalRegistros = repositorio.Listar(where).Count(); grid.PageLimit = base.pageLimit; grid.PageSize = base.pageSize; if (totalRegistros > base.pageSize) { grid.TotalPages = int.Parse((totalRegistros / base.pageSize).ToString()) + 1; } else { page = "1"; grid.TotalPages = 1; } if (Int32.TryParse(page, out pagina)) { aux = aux.Skip((pagina - 1) * base.pageSize).Take(base.pageSize); } else { aux = aux.Take(base.pageSize); } grid.PageIndex = pagina; foreach (var item in aux) { var publicacao = new ca_publicacaoVM(); publicacao.usuario = item.ca_usuario.nome; publicacao.dt_publicacao = item.dt_publicacao.HasValue ? item.dt_publicacao.Value.ToShortDateString() : "Não publicado"; publicacao.sistema = item.sistema; var atividades = item.ca_atividadesPublicadas.Select(ap => ap.ca_atividade); foreach (var atividade in atividades) { string texto = "<strong>Prioridade:</strong> " + atividade.prioridade + "<br /><strong>Período: </strong> " + (atividade.dt_inicio.HasValue ? atividade.dt_inicio.Value.ToShortDateString() : "--/--/----") + " <strong>até</strong> " + (atividade.dt_fim.HasValue ? atividade.dt_fim.Value.ToShortDateString() : "--/--/----") + "<br /><strong>Descrição:</strong> " + atividade.descricao; if (string.IsNullOrWhiteSpace(publicacao.atividades)) { publicacao.atividades += texto; } else { publicacao.atividades += "<br /><br />" + texto; } } publicacao.operacoes = "<span style='padding-right: 3px;'><a href='#' class='btn btn-info' href='#' onclick='alterar(" + item.id + ");'><i class='icon-white icon-edit'></i></a></span>" + "<br /><br />" + "<span style='padding-right: 3px;'><a href='#' class='btn btn-danger' onclick='excluir(" + item.id + ");'><i class='icon-white icon-trash'></i></a></span>"; publicacoes.Add(publicacao); } grid.Lista = publicacoes; grid.Tipo = typeof(ca_publicacaoVM); return(grid); }