Пример #1
0
        public string ActualizarAlertaTotalizacion(TotalizacionContact contacto, string mensaje)
        {
            var db = new edayRoomEntities();
            var user = db.users.Single(u => u.username == User.Identity.Name);
            TotalizacionAlerta alerta = (from a in db.TotalizacionAlertas
                                         where a.id == contacto.BlockingAlert.Id
                                         select a).Single();

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                var alertMessage = new TotalizacionAlertaMessage { fecha = DateTime.Now, mensaje = mensaje, id_usuario=user.id };
                alerta.TotalizacionAlertaMessages.Add(alertMessage);
            }

            db.SaveChanges();
            IQueryable<TotalizacionContactAlertMessage> mensajesAlerta = (from a in alerta.TotalizacionAlertaMessages
                                                                          orderby a.fecha descending
                                                                          select new TotalizacionContactAlertMessage
                                                                                     {
                                                                                         Id = a.id,
                                                                                         Fecha = a.fecha,
                                                                                         Message = a.mensaje
                                                                                     }).AsQueryable();

            return new JavaScriptSerializer().Serialize("");
        }
Пример #2
0
        public string UpdateTotalizacion(TotalizacionContact contacto, CandidatoValueIncoming[] valores)
        {
            var db = new edayRoomEntities();

            TotalizacionTimeline oldTimeline = (from pt in db.TotalizacionTimelines
                                                where pt.id == contacto.TotalizacionTimelineId
                                                select pt).Single();
            oldTimeline.activa = false;
            db.SaveChanges();

            foreach (CandidatoValueIncoming v in valores)
            {
                var ep = new Totalizacion
                             {
                                 id_candidato = int.Parse(v.name.Replace("candidato-", "")),
                                 id_mesa = contacto.MesaId,
                                 valor = v.value
                             };
                db.Totalizacions.AddObject(ep);
                ep.TotalizacionTimelines.Add(oldTimeline);
            }

            IQueryable<TotalizacionAlerta> alertas = from a in db.TotalizacionAlertas
                                                     where a.activa && !a.Alerta.blocking
                                                           && a.id_mesa == contacto.MesaId
                                                     select a;
            foreach (TotalizacionAlerta a in alertas)
            {
                a.activa = false;
            }

            var centro = db.Centroes.Single(c => c.id == contacto.CentroId);
            centro.totalizado = true;

            db.SaveChanges();
            //MatrizDeSustitucion.UpdateMatriz(contacto.CentroId);

            return new JavaScriptSerializer().Serialize("");
        }
Пример #3
0
        public string CancelarAlertaTotalizacion(TotalizacionContact contacto, string mensaje)
        {
            var db = new edayRoomEntities();
            TotalizacionAlerta alerta = (from a in db.TotalizacionAlertas
                                         where a.id == contacto.BlockingAlert.Id
                                         select a).Single();

            alerta.activa = false;
            db.SaveChanges();
            return new JavaScriptSerializer().Serialize("");
        }
Пример #4
0
        public string AlertaTotalizacion(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 TotalizacionAlerta
                             {
                                 activa = true,
                                 fecha = DateTime.Now,
                                 id_mesa = contacto.MesaId,
                                 id_testigoTotalizacion = contacto.IdTestigo,
                                 id_alerta = valor,
                                 id_usuario = user.id
                             };
            db.TotalizacionAlertas.AddObject(alerta);

            var messages = new List<TotalizacionAlertaMessage>();
            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                var alertMessage = new TotalizacionAlertaMessage { fecha = DateTime.Now, mensaje = mensaje , id_usuario = user.id};
                alerta.TotalizacionAlertaMessages.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.TotalizacionTimelines
                   where
                       pt.activa && pt.id_mesa == contacto.MesaId
                   //pt.id == contacto.MovilizacionTimelineId
                   select pt);
                foreach (var oldTimeline in oldTimelines)
                {
                    oldTimeline.activa = false;
                }

                //TotalizacionTimeline oldTimeline =
                //    (from pt in db.TotalizacionTimelines where pt.id == contacto.TotalizacionTimelineId select pt).
                //        Single();
                //oldTimeline.activa = false;
                DateTime newDate = DateTime.Now.AddMinutes(objetoAlerta.tiempo);
                var newTimeline = new TotalizacionTimeline
                                      {
                                          id_mesa = contacto.MesaId,
                                          //id_parent = oldTimeline.id,
                                          fecha = newDate,
                                          activa = true
                                      };
                db.TotalizacionTimelines.AddObject(newTimeline);
            }

            #endregion

            db.SaveChanges();

            // VERIFICAR SI HAY QUE HACER TRIGGER DE ALGUNA ALERTA
            var existingAlerts = from a in db.TotalizacionAlertas
                                                            where a.id_mesa == contacto.MesaId &&
                                                                  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 TotalizacionAlerta
                                         {
                                             activa = true,
                                             fecha = DateTime.Now,
                                             id_mesa = contacto.MesaId,
                                             id_testigoTotalizacion = contacto.IdTestigo,
                                             id_alerta = newAlerta.id,
                                             id_usuario = user.id
                                         };
                    db.TotalizacionAlertas.AddObject(alertaAuto);

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

            //var newContacto = TotalizacionContact.GetTotalizacionContact(contacto.IdTestigo);
            return new JavaScriptSerializer().Serialize("");
        }
Пример #5
0
        public string UpdateQuickCount(TotalizacionContact contacto, CandidatoValueIncoming[] valores)
        {
            var db = new edayRoomEntities();
            var user = db.users.Single(u => u.username == User.Identity.Name);

            QuickCountTimeline oldTimeline = (from pt in db.QuickCountTimelines
                                              where pt.id == contacto.TotalizacionTimelineId
                                              select pt).Single();
            oldTimeline.activa = false;
            db.SaveChanges();

            IQueryable<Totalizacion> totalizaciones = db.Totalizacions.Where(t => t.id_mesa == contacto.MesaId);
            foreach (CandidatoValueIncoming v in valores)
            {
                int idCandidato = int.Parse(v.name.Replace("candidato-", ""));
                Totalizacion totalizacion = totalizaciones.SingleOrDefault(t => t.id_candidato == idCandidato);
                if (totalizacion == null)
                {
                    totalizacion = new Totalizacion
                                       {
                                           id_candidato = idCandidato,
                                           id_mesa = contacto.MesaId,
                                           valor = v.value,
                                           id_user = user.id
                                       };
                    db.Totalizacions.AddObject(totalizacion);
                }
                totalizacion.QuickCountTimelines.Add(oldTimeline);
            }

            var centro = db.Centroes.Single(c => c.id == contacto.CentroId);
            centro.totalizado = true;
            IQueryable<QuickCountAlerta> alertas = from a in db.QuickCountAlertas
                                                   where a.activa && !a.Alerta.blocking
                                                         && a.id_centro == contacto.CentroId
                                                   select a;
            foreach (QuickCountAlerta a in alertas)
            {
                a.activa = false;
            }

            //contacto.CentroId

            db.SaveChanges();
            MatrizDeSustitucion.UpdateMatriz(contacto.CentroId);
            return new JavaScriptSerializer().Serialize("");
        }