Beispiel #1
0
        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;
        }