Ejemplo n.º 1
0
        public string UpdateLastMovilizacion(MovilizacionContact contacto, int valor, int cola = 0)
        {
            var          db = new edayRoomEntities();
            Movilizacion oldMovilizacion = (from pt in db.Movilizacions
                                            where pt.id == contacto.LastMovilizacionId
                                            select pt).SingleOrDefault();

            if (oldMovilizacion != null)
            {
                oldMovilizacion.conteo = valor;
                db.SaveChanges();
            }

            return(new JavaScriptSerializer().Serialize(""));
        }
Ejemplo n.º 2
0
        public ActionResult AdminCentro(int idCentro)
        {
            var db     = new edayRoomEntities();
            var centro = (from c in db.Centroes
                          where c.id == idCentro
                          select c).Single();
            var movilizacion = from p in centro.Movilizacions
                               orderby p.fecha descending
                               select p;

            MovilizacionTimeline timelineMovilizacion = (from tp in db.MovilizacionTimelines
                                                         where tp.activa &&
                                                         tp.id_centro == idCentro
                                                         select tp).Single();

            Movilizacion lastMovilizacion = movilizacion.FirstOrDefault();

            Debug.Assert(lastMovilizacion != null, "lastMovilizacion != null");
            var contact = new MovilizacionContact
            {
                Centro                 = centro.Nombre,
                IdCentro               = centro.id,
                IdTestigo              = centro.Movilizadors.First(t => t.activo).id,
                NombreTestigo          = centro.Movilizadors.First(t => t.activo).nombre,
                Numero                 = centro.Movilizadors.First(t => t.activo).numero,
                Votantes               = centro.votantes ?? 0,
                LastUpdate             = lastMovilizacion.fecha,
                LastValue              = lastMovilizacion.conteo,
                LastMovilizacionId     = lastMovilizacion.id,
                MovilizacionTimelineId = timelineMovilizacion.id
            };

            ViewData["centro"]       = centro;
            ViewData["movilizacion"] = movilizacion.ToList();
            ViewData["contact"]      = contact;
            return(View("AdminCentro"));
        }
Ejemplo n.º 3
0
        public string UpdateMovilizacion(MovilizacionContact contacto, int valor, int cola = 0)
        {
            var db   = new edayRoomEntities();
            var user = db.users.Single(u => u.username == User.Identity.Name);
            //Reseteo los timelines activos
            var oldTimelines =
                (from pt in db.MovilizacionTimelines
                 where
                 pt.activa && pt.id_centro == contacto.IdCentro
                 select pt);

            foreach (var oldTimeline in oldTimelines)
            {
                oldTimeline.activa = false;
            }

            var newDate = contacto.QuickCountActive ? DateTime.Now.AddMinutes(45) : DateTime.Now.AddMinutes(60);

            //Actualizo los timelines
            var newTimeline = new MovilizacionTimeline {
                id_centro = contacto.IdCentro, fecha = newDate, activa = true
            };

            db.MovilizacionTimelines.AddObject(newTimeline);
            var newMovilizacion = new Movilizacion
            {
                fecha = DateTime.Now,
                hora  = DateTime.Now.Hour,
                min10 = DateTime.Now.Minute / 10,
                min30 = DateTime.Now.Minute / 30,

                conteo         = valor,
                id_centro      = contacto.IdCentro,
                id_movilizador = contacto.IdTestigo,
                active         = true,
                id_parent      = contacto.LastMovilizacionId,
                id_user        = user.id
            };



            //Actualizo los datos a nivel de centro
            var centro = db.Centroes.Single(c => c.id == contacto.IdCentro);

            centro.movilizacionCount       = valor;
            centro.lastMovilizacionContact = DateTime.Now;
            centro.nextMovilizacionContact = newDate;


            Movilizacion oldMovilizacion = db.Movilizacions.Single(p => p.id == contacto.LastMovilizacionId);

            oldMovilizacion.active = false;

            db.Movilizacions.AddObject(newMovilizacion);

            //Desactivo las alertas que esten pendientes en el centro
            var alertas = from a in db.MovilizacionAlertas
                          where a.activa && !a.Alerta.blocking &&
                          a.id_centro == contacto.IdCentro
                          select a;

            foreach (var a in alertas)
            {
                a.activa = false;
            }

            db.SaveChanges();
            return(new JavaScriptSerializer().Serialize(""));
        }