public JsonResult LlenaGrid(DateTime periodo, int start, int limit) { object respuesta = null; List <object> lista = new List <object>(); List <DateTime?> lmes = new List <DateTime?>(); decimal totalUSDPolizas = 0, totalUSDAcuerdos = 0, totalVarMinutos = 0, totalVarMonto = 0; int total = 0; try { var datos = db.sp_GestionAcuerdos_Select(periodo); foreach (var elemento in datos) { lista.Add(new { elemento.Id, Periodo = elemento.periodo, Sentido = elemento.sentido, Operador = elemento.operador, Trafico = elemento.trafico, MinutosPolizas = elemento.minutosPoliza, TarifaPolizas = elemento.tarifaPoliza, USDPolizas = elemento.USDPoliza, MinutosAcuerdos = elemento.minutosAcuerdo, TarifaAcuerdos = elemento.tarifaAcuerdo, USDAcuerdos = elemento.USDAcuerdo, elemento.VariacionMinutos, elemento.VariacionMonto }); lmes.Add(elemento.mes); totalUSDPolizas += (elemento.USDPoliza == null ? 0 : Convert.ToDecimal(elemento.USDPoliza)); totalUSDAcuerdos += (elemento.USDAcuerdo == null ? 0 : Convert.ToDecimal(elemento.USDAcuerdo)); totalVarMinutos += (elemento.VariacionMinutos == null ? 0 : Convert.ToDecimal(elemento.VariacionMinutos)); totalVarMonto += (elemento.VariacionMonto == null ? 0 : Convert.ToDecimal(elemento.VariacionMonto)); } Boolean cambio = false; if (lmes.Count > 0) { lmes = lmes.Distinct().ToList(); cambio = BuscaCambioAcuerdo(lmes[0]); } total = lista.Count(); lista = lista.Skip(start).Take(limit).ToList(); respuesta = new { results = lista, start, limit, total, cambio, success = true }; } catch (Exception e) { respuesta = new { success = false, results = e.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }