public List <EnvolvidosViewModel> FiltrarListaEnvolvidos(bool clientes, bool profissionais, bool partes, string termo, GruposPartesListItem listaEnvolvidos) { var retornoFiltrado = new EnvolvidosPaginados(); if (clientes) { foreach (var cliente in listaEnvolvidos.Clientes) { var clienteEnvolvido = new EnvolvidosViewModel { Id = cliente.Id.GetValueOrDefault(), Nome = cliente.Nome, Tipo = "Cliente" }; retornoFiltrado.Envolvidos.Add(clienteEnvolvido); } } if (profissionais) { foreach (var profissional in listaEnvolvidos.Profissionais) { var profissionalEnvolvido = new EnvolvidosViewModel { Id = profissional.Id.GetValueOrDefault(), Nome = profissional.Nome, Tipo = "Profissional" }; retornoFiltrado.Envolvidos.Add(profissionalEnvolvido); } } if (partes) { foreach (var parte in listaEnvolvidos.Envolvidos) { var parteEnvolvida = new EnvolvidosViewModel { Id = parte.IdParte, Nome = parte.Nome, Tipo = "Parte" }; retornoFiltrado.Envolvidos.Add(parteEnvolvida); } } if (!string.IsNullOrWhiteSpace(termo)) { retornoFiltrado.Envolvidos = retornoFiltrado.Envolvidos.FindAll(x => x.Nome.Trim().ToLower().Contains(termo.Trim().ToLower())); } return(retornoFiltrado.Envolvidos); }
public async Task <JsonReturn> GridEnvolvidos(int casoId, string termo = "", bool clientes = false, bool partes = false, bool profissionais = false, int pagina = 1, int itensPorPagina = 10, List <string> errorList = null) { var retorno = new JsonReturn(); var envolvidos = new EnvolvidosPaginados(); ViewBag.termo = termo; ViewBag.clientes = clientes; ViewBag.partes = partes; ViewBag.profissionais = profissionais; ViewBag.Message = TempData["message"]; if (errorList != null && errorList.Count > 0) { ViewBag.ErrorList = errorList; } ViewBag.CasoId = casoId; //if (string.IsNullOrWhiteSpace(termo)) //{ // retorno.Object = new EnvolvidosPaginados(); // return retorno; //} var listaEnvolvidos = await _envolvimentoService.ListarGruposPartesProcesso(new Guid(Helpers.RetrieveUserClaimGuid(HttpContext)), termo, casoId, clientes, partes, profissionais); //filtro retorno.Object = _envolvimentoService.FiltrarListaEnvolvidos(clientes, profissionais, partes, termo, listaEnvolvidos); var totalItens = envolvidos.Envolvidos.Count(); envolvidos.Envolvidos = envolvidos.Envolvidos.Skip(itensPorPagina * (pagina - 1)).Take(itensPorPagina).ToList(); envolvidos.Envolvidos = envolvidos.Envolvidos.OrderBy(x => x.Nome).ToList(); envolvidos.ItensPorPagina = itensPorPagina; envolvidos.PaginaAtual = pagina; envolvidos.TotalItens = totalItens; envolvidos.TotalPaginas = (totalItens / itensPorPagina) + 1; return(retorno); }