예제 #1
0
        // GET: api/Personas
        public IHttpActionResult GetPersonas(string current, string rowCount, string searchPhrase, string id)
        {
            /*
             * Formato de la peticion que realiza por ajax el bootgrid
             * current=1 & rowCount=10 & sort[sender]=asc & searchPhrase= & id=b0df282a-0d67-40e5-8558-c9e93b7befed
             *
             */

            int    iCurrent        = 1;
            int    iRowCount       = 10;
            int    iTotalRegistros = 0;
            string campoOrdenar    = string.Empty;
            string orden           = string.Empty;

            // obtiene de los parametros del query string el campo y el sentido de ordenacion
            var vars = Request.GetQueryNameValuePairs();

            KeyValuePair <string, string> sortValues = vars.FirstOrDefault(x => x.Key.Contains("sort"));

            if (!string.IsNullOrEmpty(sortValues.Value))
            {
                campoOrdenar = sortValues.Key.TrimStart("sort.".ToArray());
                orden        = sortValues.Value;
            }

            // se transforman los valores de paginación
            Int32.TryParse(current, out iCurrent);
            Int32.TryParse(rowCount, out iRowCount);

            // obtiene la lista de familias filtrada
            PersonasDAO       item  = new PersonasDAO();
            List <PersonaDTO> lista = new List <PersonaDTO>();

            lista = item.GetListaFiltrada(iCurrent, iRowCount, searchPhrase, campoOrdenar, orden, out iTotalRegistros);

            // se completa el objeto de respuesta
            DataBootGrid bootGrid = new DataBootGrid()
            {
                current   = iCurrent,
                rowsCount = iRowCount,
                rows      = lista.ToArray(),
                total     = iTotalRegistros
            };

            return(Ok(bootGrid));
        }