public ActionResult ListaKpis() { var Draw = Request.Form.GetValues("draw").FirstOrDefault(); var Start = Request.Form.GetValues("start").FirstOrDefault(); var Length = Request.Form.GetValues("length").FirstOrDefault(); var SortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][data]").FirstOrDefault(); var SortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault(); var Mes = Request.Form.GetValues("columns[1][search][value]").FirstOrDefault(); int PageSize = Length != null?Convert.ToInt32(Length) : 0; int Skip = Start != null?Convert.ToInt32(Start) : 0; int TotalRecords = 0; try { List <kpisdespacho> listaKPIS = new List <kpisdespacho>(); using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) { con.Open(); string sql = "exec [dbo].[SP_KPISDESPACHO_PARAMETROSOPCIONALES] @mes"; var query = new SqlCommand(sql, con); if (Mes != "") { query.Parameters.AddWithValue("@mes", Mes); } else { query.Parameters.AddWithValue("@mes", DBNull.Value); } using (var dr = query.ExecuteReader()) { while (dr.Read()) { // facturas var kpis = new kpisdespacho(); kpis.id = Convert.ToInt32(dr["id"]); kpis.mes = dr["mes"].ToString(); kpis.wk = Convert.ToInt32(dr["wk"]); kpis.diasemana = Convert.ToInt32(dr["diasemana"]); kpis.cv = dr["cv"].ToString(); kpis.mo = dr["mo"].ToString(); kpis.tipoembarque = dr["tipoembarque"].ToString(); kpis.fechaembarque = Convert.ToDateTime(dr["fechaembarque"]); kpis.qtypiezas = Convert.ToInt32(dr["qtypiezas"]); kpis.qtycajas = Convert.ToInt32(dr["qtycajas"]); kpis.qtypallets = Convert.ToDecimal(dr["qtypallets"]); listaKPIS.Add(kpis); } } } if (!(string.IsNullOrEmpty(SortColumn) && string.IsNullOrEmpty(SortColumnDir))) { listaKPIS = listaKPIS.OrderBy(SortColumn + " " + SortColumnDir).ToList(); } TotalRecords = listaKPIS.ToList().Count(); var NewItems = listaKPIS.Skip(Skip).Take(PageSize == -1 ? TotalRecords : PageSize).ToList(); return(Json(new { draw = Draw, recordsFiltered = TotalRecords, recordsTotal = TotalRecords, data = NewItems }, JsonRequestBehavior.AllowGet)); } catch (Exception _ex) { Console.WriteLine(_ex.Message.ToString()); ViewBag.Error = "Ha ocurrido un error. Contacte al administrador del sistema"; return(RedirectToAction("Error500", "Errores")); } }