public IActionResult _ClientesBusca(string filtro) { JObject o = JObject.Parse(filtro); FiltrosClientesModel filtros = o.ToObject <FiltrosClientesModel>(); IEnumerable <Cliente> clientes = _facade.ListAllInclude <Cliente>(); if (!filtros.IncluiInativo) { clientes = clientes.Where(c => !c.Inativo); } if (filtros.Id != null && filtros.Id != 0) { clientes = clientes.Where(c => c.Id == filtros.Id); } if (!String.IsNullOrEmpty(filtros.Nome)) { clientes = clientes.Where(c => c.Nome.Contains(filtros.Nome)); } if (!String.IsNullOrEmpty(filtros.Email)) { clientes = clientes.Where(c => c.Usuario.Email.Contains(filtros.Email)); } if (filtros.PagAtual > 0) { clientes = clientes.Skip((filtros.PagAtual - 1) * 10); } _vh = new PaginaClientesViewHelper { Entidades = new Dictionary <string, object> { [typeof(IList <Cliente>).FullName] = clientes.Take(10).ToList(), [nameof(ListaClientesModel.PagAtual)] = 1, [nameof(ListaClientesModel.PagMax)] = (clientes.Count() / 10) + 1 } }; PaginaClientesModel vm = (PaginaClientesModel)_vh.ViewModel; vm.Filtros = filtros; return(PartialView("../Admin/PartialViews/_TabelaClientesPartial", vm)); }
protected override void ToViewModel() { PaginaClientesModel vm = new PaginaClientesModel(); IList <Cliente> clientes = Entidades.ContainsKey(typeof(IList <Cliente>).FullName) ? (IList <Cliente>)Entidades[typeof(IList <Cliente>).FullName] : new List <Cliente>(); int pagAtual = Entidades.ContainsKey(nameof(ListaClientesModel.PagAtual)) ? (int)Entidades[nameof(ListaClientesModel.PagAtual)] : 1; int pagMax = Entidades.ContainsKey(nameof(ListaClientesModel.PagMax)) ? (int)Entidades[nameof(ListaClientesModel.PagMax)] : 1; ListaClientesModel lista = new ListaClientesModel { PagAtual = pagAtual, PagMax = pagMax }; AdminClienteViewHelper clienteVh = new AdminClienteViewHelper(); foreach (var cliente in clientes) { clienteVh.Entidades = new Dictionary <string, object> { [typeof(Cliente).Name] = cliente }; lista.Clientes.Add((AdminClienteModel)clienteVh.ViewModel); } vm.Clientes = lista; string Id = nameof(FiltrosClientesModel.Id), Nome = nameof(FiltrosClientesModel.Nome), Email = nameof(FiltrosClientesModel.Email); vm.Filtros.Id = Entidades.ContainsKey(Id) ? (int)Entidades[Id] : 0; vm.Filtros.Nome = Entidades.ContainsKey(Nome) ? (string)Entidades[Nome] : null; vm.Filtros.Email = Entidades.ContainsKey(Email) ? (string)Entidades[Email] : null; _viewModel = vm; }