public ActionResult Index() { InicializarEdit(); var model = new UbicacionAgente(); model.AgenteUbicaciones = new List <AgenteUbicacion>(); model.Agentes = GetAgenteListDetail(((List <Agente>)ViewBag.Agentes).Select(p => p.IdAgente.ToString()).ToArray <string>());//new List<UbicacionAgenteDetalle>(); model.Filter1 = true; model.Filter24 = true; model.Filter48 = true; model.FilterMAS = true; DataBase.ParametroHelper.Load(); ViewBag.AgenteUbicacion1 = DataBase.ParametroHelper.AgenteUbicacion1; ViewBag.AgenteUbicacion2 = DataBase.ParametroHelper.AgenteUbicacion2; ViewBag.AgenteUbicacion3 = DataBase.ParametroHelper.AgenteUbicacion3; return(View(model)); }
public ActionResult Index(UbicacionAgente model, string[] agentes) { InicializarEdit(); model.Agentes = GetAgenteListDetail(agentes); DataBase.ParametroHelper.Load(); ViewBag.AgenteUbicacion1 = DataBase.ParametroHelper.AgenteUbicacion1; ViewBag.AgenteUbicacion2 = DataBase.ParametroHelper.AgenteUbicacion2; ViewBag.AgenteUbicacion3 = DataBase.ParametroHelper.AgenteUbicacion3; try { var idAgente = model.Agentes.Select(p => p.IdAgente).ToArray <int>(); model.AgenteUbicaciones = (from e in DataBase.AgenteUbicaciones.GetQueryable(p => idAgente.Contains(p.IdAgente)) group e by e.IdAgente into g select g.OrderByDescending(e => e.Fecha).FirstOrDefault() into r select r).ToList(); DateTime ahora = GetCurrentDateTime(); foreach (var item in model.AgenteUbicaciones) { var agente = ((List <Agente>)ViewBag.Agentes).Where(p => p.IdAgente == item.IdAgente).FirstOrDefault(); if (agente != null) { item.MarkerIndex = agente.MarkerIndex; item.Agente = agente; } long ticks = ahora.Ticks - item.Fecha.Ticks; long minutos = ticks / (60 * 1000 * 10000); if (minutos < 60) { item.HorasUltimaConexion = 0; item.UltimaConexion = string.Format(Resources.MessageFor.HaceMinutos, minutos); } else { long horas = minutos / 60; item.HorasUltimaConexion = horas; if (horas > 24) { item.UltimaConexion = string.Format(Resources.MessageFor.HaceDias, horas / 24); } else { item.UltimaConexion = string.Format(Resources.MessageFor.HaceHoras, horas); } } } for (int i = model.AgenteUbicaciones.Count - 1; i >= 0; i--) { var item = model.AgenteUbicaciones[i]; if ((item.HorasUltimaConexion <= DataBase.ParametroHelper.AgenteUbicacion1 && !model.Filter1) || (item.HorasUltimaConexion > DataBase.ParametroHelper.AgenteUbicacion1 && item.HorasUltimaConexion <= DataBase.ParametroHelper.AgenteUbicacion2 && !model.Filter24) || (item.HorasUltimaConexion > DataBase.ParametroHelper.AgenteUbicacion2 && item.HorasUltimaConexion <= DataBase.ParametroHelper.AgenteUbicacion3 && !model.Filter48) || (item.HorasUltimaConexion > DataBase.ParametroHelper.AgenteUbicacion3 && !model.FilterMAS)) { model.AgenteUbicaciones.Remove(item); } } return(View(model)); } catch { this.AddDefaultErrorMessage(); } model.AgenteUbicaciones = new List <AgenteUbicacion>(); return(View(model)); }