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);
        }
Пример #2
0
        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);
        }