Beispiel #1
0
        public ActionResult SimpleSearchEmpresas(SimpleListViewModel parameters)
        {
            var transfer = new ClientTransfer();

            var anyoQueriable = _pedidosService.BuscarEmpresas();

            anyoQueriable = anyoQueriable.Where(a => a.Activa);
            var empresas     = Session["Empresas"].ToString();
            var listEmpresas = empresas.Contains(",")
                ? empresas.Split(',').Select(a => int.Parse(a)).ToList()
                : new List <int>()
            {
                int.Parse(empresas)
            };

            anyoQueriable = anyoQueriable.Where(a => listEmpresas.Contains(a.Id));

            //if (!string.IsNullOrEmpty(parameters.Descripcion))
            //    anyoQueriable = anyoQueriable.Where(a => a.Nombre.Contains(parameters.Descripcion));

            var selectQuery = anyoQueriable.Select(a => new
            {
                a.Id,
                Descripcion = a.Nombre.Trim()
            }).OrderBy(o => o.Descripcion);

            var listado = selectQuery
                          .Skip((parameters.PageIndex - 1) * parameters.ItemsPerPage)
                          .Take(parameters.ItemsPerPage)
                          .ToList();

            var totalElements = selectQuery.Count();
            var totalpages    = totalElements / parameters.ItemsPerPage;

            transfer.Data = listado;
            transfer.Pagination.TotalPages          = totalpages + ((totalElements % parameters.ItemsPerPage) > 0 ? 1 : 0);
            transfer.Pagination.TotalRecords        = totalElements; //Total de elementos segun filtro
            transfer.Pagination.TotalDisplayRecords = listado.Count; //Total de elementos segun pagina
            return(Json(transfer));
        }