public string ActualizarAlertaExitPolls(ExitPollContact contacto, string mensaje) { var db = new edayRoomEntities(); var user = db.users.Single(u => u.username == User.Identity.Name); ExitPollAlerta alerta = (from a in db.ExitPollAlertas where a.id == contacto.BlockingAlert.Id select a).Single(); if (!string.IsNullOrWhiteSpace(mensaje)) { var alertMessage = new ExitPollAlertaMessage { fecha = DateTime.Now, mensaje = mensaje, id_usuario = user.id }; alerta.ExitPollAlertaMessages.Add(alertMessage); } db.SaveChanges(); IQueryable <ExitPollContactAlertMessage> mensajesAlerta = (from a in alerta.ExitPollAlertaMessages orderby a.fecha descending select new ExitPollContactAlertMessage { Id = a.id, Fecha = a.fecha, Message = a.mensaje }).AsQueryable(); return(new JavaScriptSerializer().Serialize("")); }
public string CancelarAlertaExitPolls(ExitPollContact contacto, string mensaje) { var db = new edayRoomEntities(); ExitPollAlerta alerta = (from a in db.ExitPollAlertas where a.id == contacto.BlockingAlert.Id select a).Single(); alerta.activa = false; db.SaveChanges(); return(new JavaScriptSerializer().Serialize("")); }
public string AlertaExitPolls(ExitPollContact contacto, int valor, string mensaje) { var db = new edayRoomEntities(); var user = db.users.Single(u => u.username == User.Identity.Name); #region Registro la alerta var alerta = new ExitPollAlerta { activa = true, fecha = DateTime.Now, id_centro = contacto.CentroId, id_testigoExitPoll = contacto.IdTestigo, id_alerta = valor, id_usuario = user.id }; db.ExitPollAlertas.AddObject(alerta); var messages = new List <ExitPollAlertaMessage>(); if (!string.IsNullOrWhiteSpace(mensaje)) { var alertMessage = new ExitPollAlertaMessage { fecha = DateTime.Now, mensaje = mensaje, id_usuario = user.id }; alerta.ExitPollAlertaMessages.Add(alertMessage); messages.Add(alertMessage); } #endregion #region Retraso de Timeline Alerta objetoAlerta = db.Alertas.Single(a => a.id == valor); if (objetoAlerta.regresivo) { ExitPollTimeline oldTimeline = (from pt in db.ExitPollTimelines where pt.id == contacto.ExitPollTimelineId select pt). Single(); oldTimeline.activa = false; DateTime newDate = DateTime.Now.AddMinutes(objetoAlerta.tiempo); var newTimeline = new ExitPollTimeline { id_centro = contacto.CentroId, id_testigoExitPoll = contacto.IdTestigo, id_parent = oldTimeline.id, fecha = newDate, activa = true }; db.ExitPollTimelines.AddObject(newTimeline); } #endregion db.SaveChanges(); // VERIFICAR SI HAY QUE HACER TRIGGER DE ALGUNA ALERTA IQueryable <ExitPollAlerta> existingAlerts = from a in db.ExitPollAlertas where a.id_centro == contacto.CentroId && a.id_alerta == valor && a.activa select a; int alertCount = existingAlerts.Count(); int maxRepeats = existingAlerts.First().Alerta.maxRepeats ?? 0; if (maxRepeats != 0) { if (alertCount == maxRepeats) { //LLEGUE AL LIMITE, hago el trigger de la alerta Alerta newAlerta = existingAlerts.First().Alerta.AlertaAsociada; var alertaAuto = new ExitPollAlerta { activa = true, fecha = DateTime.Now, id_centro = contacto.CentroId, id_testigoExitPoll = contacto.IdTestigo, id_alerta = newAlerta.id, id_usuario = user.id }; db.ExitPollAlertas.AddObject(alertaAuto); var alertMessage = new ExitPollAlertaMessage { fecha = DateTime.Now, mensaje = "Alerta generada por sistema", id_usuario = user.id }; alertaAuto.ExitPollAlertaMessages.Add(alertMessage); } } db.SaveChanges(); //var newContacto = ExitPollContact.GetExitPollContact(contacto.IdTestigo); return(new JavaScriptSerializer().Serialize("")); }
public Alerta(ExitPollAlerta a) { Modulo = Modulo.Totalizacion; InicializarAlerta(a.ExitPollAlertaMessages, a); }