Example #1
0
 /// <summary>
 /// Deprecated Method for adding a new object to the QuickCountTimelines EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToQuickCountTimelines(QuickCountTimeline quickCountTimeline)
 {
     base.AddObject("QuickCountTimelines", quickCountTimeline);
 }
Example #2
0
 /// <summary>
 /// Create a new QuickCountTimeline object.
 /// </summary>
 /// <param name="id">Initial value of the id property.</param>
 /// <param name="id_centro">Initial value of the id_centro property.</param>
 /// <param name="fecha">Initial value of the fecha property.</param>
 /// <param name="activa">Initial value of the activa property.</param>
 /// <param name="id_testigoQuickCount">Initial value of the id_testigoQuickCount property.</param>
 public static QuickCountTimeline CreateQuickCountTimeline(global::System.Int32 id, global::System.Int32 id_centro, global::System.DateTime fecha, global::System.Boolean activa, global::System.Int32 id_testigoQuickCount)
 {
     QuickCountTimeline quickCountTimeline = new QuickCountTimeline();
     quickCountTimeline.id = id;
     quickCountTimeline.id_centro = id_centro;
     quickCountTimeline.fecha = fecha;
     quickCountTimeline.activa = activa;
     quickCountTimeline.id_testigoQuickCount = id_testigoQuickCount;
     return quickCountTimeline;
 }
Example #3
0
        public string AlertaQuickCount(TotalizacionContact 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 QuickCountAlerta
                             {
                                 activa = true,
                                 fecha = DateTime.Now,
                                 id_centro = contacto.CentroId,
                                 id_alerta = valor,
                                 id_usuario = user.id
                             };
            db.QuickCountAlertas.AddObject(alerta);

            var messages = new List<QuickCountAlertaMessage>();
            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                var alertMessage = new QuickCountAlertaMessage { fecha = DateTime.Now, mensaje = mensaje, id_usuario = user.id };
                alerta.QuickCountAlertaMessages.Add(alertMessage);
                messages.Add(alertMessage);
            }

            #endregion

            #region  Retraso de Timeline

            Alerta objetoAlerta = db.Alertas.Single(a => a.id == valor);

            if (objetoAlerta.regresivo)
            {
                var oldTimelines =
                   (from pt in db.QuickCountTimelines
                    where
                        pt.activa && pt.id_centro == contacto.CentroId
                    //pt.id == contacto.MovilizacionTimelineId
                    select pt);
                foreach (var oldTimeline in oldTimelines)
                {
                    oldTimeline.activa = false;
                }

                //QuickCountTimeline oldTimeline =
                //    (from pt in db.QuickCountTimelines where pt.id == contacto.TotalizacionTimelineId select pt).
                //        Single();
                //oldTimeline.activa = false;
                DateTime newDate = DateTime.Now.AddMinutes(objetoAlerta.tiempo);
                var newTimeline = new QuickCountTimeline
                                      {
                                          id_centro = contacto.CentroId,
                                          fecha = newDate,
                                          activa = true
                                      };
                db.QuickCountTimelines.AddObject(newTimeline);
            }

            #endregion

            db.SaveChanges();

            // VERIFICAR SI HAY QUE HACER TRIGGER DE ALGUNA ALERTA
            IQueryable<QuickCountAlerta> existingAlerts = from a in db.QuickCountAlertas
                                                          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 QuickCountAlerta
                                         {
                                             activa = true,
                                             fecha = DateTime.Now,
                                             id_centro = contacto.CentroId,
                                             id_alerta = newAlerta.id,
                                             id_usuario = user.id
                                         };
                    db.QuickCountAlertas.AddObject(alertaAuto);

                    var alertMessage = new QuickCountAlertaMessage { fecha = DateTime.Now, mensaje = "Alerta generada por sistema", id_usuario = user.id };
                    alertaAuto.QuickCountAlertaMessages.Add(alertMessage);
                }
            }
            db.SaveChanges();

            //var newContacto = TotalizacionContact.GetTotalizacionContact(contacto.IdTestigo);
            return new JavaScriptSerializer().Serialize("");
        }