public JsonResult ObtenerListaPermisos(PermissionFiltersViewModel ofilters)//DataTableAjaxPostModel model
        {
            PermissionBL oPermissionBL = new PermissionBL();
            //PermissionFiltersViewModel ofilters = new PermissionFiltersViewModel();
            GridModel <PermissionViewModel> grid = oPermissionBL.ObtenerLista(ofilters);

            return(Json(new
            {
                // this is what datatables wants sending back
                draw = ofilters.draw,
                recordsTotal = grid.total,
                recordsFiltered = grid.recordsFiltered,
                data = grid.rows
            }));
        }
Exemple #2
0
 public GridModel <PermissionViewModel> ObtenerLista(PermissionFiltersViewModel filters)
 {
     return(oRepositorio.ObtenerLista(filters));
 }
        public GridModel <PermissionViewModel> ObtenerLista(PermissionFiltersViewModel filters)
        {
            var searchBy = (filters.search != null) ? filters.search.value : null;


            string sortBy  = "";
            string sortDir = "";

            if (filters.order != null)
            {
                // in this example we just default sort on the 1st column
                sortBy  = filters.columns[filters.order[0].column].data;
                sortDir = filters.order[0].dir.ToLower();
            }


            GridModel <PermissionViewModel> resultado    = new GridModel <PermissionViewModel>();
            IQueryable <permissions>        queryFilters = Set;



            int count_records          = queryFilters.Count();
            int count_records_filtered = count_records;


            if (String.IsNullOrWhiteSpace(searchBy) == false)
            {
                // as we only have 2 cols allow the user type in name 'firstname lastname' then use the list to search the first and last name of dbase
                var searchTerms = searchBy.Split(' ').ToList().ConvertAll(x => x.ToLower());

                queryFilters = queryFilters.Where(s => searchTerms.Any(srch => s.name.ToLower().Contains(srch)) || searchTerms.Any(srch => s.title.ToLower().Contains(srch)));


                count_records_filtered = queryFilters.Count();
            }


            var query = queryFilters.Select(a => new PermissionViewModel
            {
                id_permission = a.id_permission,
                name          = a.name,
                title         = a.title
            });

            if (String.IsNullOrEmpty(sortBy))
            {
                sortBy = "id_permission";
            }
            if (String.IsNullOrEmpty(sortDir))
            {
                sortDir = "asc";
            }
            string sortExpression = sortBy.Trim() + " " + sortDir.Trim();

            if (sortExpression.Trim() != "")
            {
                query = OrderByDinamic.OrderBy <PermissionViewModel>(query, sortExpression.Trim());
            }
            resultado.rows = query.Skip(filters.start).Take(filters.length).ToList();



            resultado.total = count_records;

            resultado.recordsFiltered = count_records_filtered;
            return(resultado);
        }