public string UpdateSingleParticipacion(int participacionId, int valor, int cola) { using (var db = new edayRoomEntities()) { Participacion participacion = db.Participacions.SingleOrDefault(p => p.id == participacionId); if (participacion != null) { var mesa = participacion.Mesa; mesa.participacion = mesa.participacion == participacion.conteo ? valor : Math.Max(mesa.participacion, valor); participacion.conteo = valor; participacion.cola = cola; var centro = mesa.Centro; var mesasActivas = centro.Mesas1.Where(m => m.participacion != 0).ToArray(); var votosRegistrados = mesasActivas.Sum(m => m.participacion); var votantesEnMesa = mesasActivas.Sum(m => m.votantes); var proyeccionCentro = centro.votantes * votosRegistrados / votantesEnMesa; centro.participacionContada = votosRegistrados; centro.participacionProyectada = proyeccionCentro; } db.SaveChanges(); return(new JavaScriptSerializer().Serialize("")); } }
public ActionResult AdminMesa(int idMesa) { var db = new edayRoomEntities(); Mesa mesa = (from m in db.Mesas where m.id == idMesa select m).Single(); IOrderedEnumerable <Participacion> participacion = from p in mesa.Participacions where p.id_testigo != null orderby p.fecha descending select p; Participacion lastParticipacion = participacion.FirstOrDefault(); Debug.Assert(lastParticipacion != null, "lastParticipacion != null"); var contact = new ParticipacionContact { Centro = mesa.Centro.Nombre, IdMesa = mesa.id, IdTestigo = mesa.Testigoes.First(t => t.activo).id, Mesa = mesa.numero, NombreTestigo = mesa.Testigoes.First(t => t.activo).nombre, Numero = mesa.Testigoes.First(t => t.activo).numero, Votantes = mesa.votantes, LastUpdate = mesa.lastContact, LastValue = mesa.participacion }; ViewData["mesa"] = mesa; ViewData["participacion"] = participacion.ToList(); ViewData["contact"] = contact; return(View("AdminMesa")); }
public IActionResult GuardarNuevoParticipante(InscripcionDto iForm) { if (ModelState.IsValid) { Participacion nuevoParticipante = new Participacion(); var inscriptos = _context.Participacion.ToList(); nuevoParticipante.ArqueroNavigation = _context.Arquero.Find(iForm.ArqueroId); nuevoParticipante.CategoriaNavigation = _context.Categoria.Find(iForm.CategoriaID); nuevoParticipante.DianaNavigation = _context.Diana.Find(iForm.DianaId); nuevoParticipante.Mosca = 0; nuevoParticipante.Puesto = 0; nuevoParticipante.Puntaje = 0; nuevoParticipante.Torneo = iForm.TorneoId; _context.Participacion.Add(nuevoParticipante); _context.SaveChanges(); return(RedirectToAction("Participacion", new { Torneo = iForm.TorneoId })); } else { return(View(iForm)); } }
public string UpdateParticipacion(ParticipacionContact contacto, int valor, int cola = 0) { var db = new edayRoomEntities(); var user = db.users.Single(u => u.username == User.Identity.Name); //Reseteo los timelines var oldTimelines = (from pt in db.ParticipacionTimelines where pt.activa && pt.id_mesa == contacto.IdMesa select pt); foreach (var oldTimeline in oldTimelines) { oldTimeline.activa = false; } //Guardar valor en timeline var newDate = contacto.QuickCountActive ? DateTime.Now.AddMinutes(45) : DateTime.Now.AddMinutes(60); var newTimeline = new ParticipacionTimeline { id_mesa = contacto.IdMesa, fecha = newDate, activa = true }; db.ParticipacionTimelines.AddObject(newTimeline); var newParticipacion = new Participacion { fecha = DateTime.Now, hora = DateTime.Now.Hour, min10 = DateTime.Now.Minute / 10, min30 = DateTime.Now.Minute / 30, conteo = valor, id_mesa = contacto.IdMesa, id_testigo = contacto.IdTestigo, cola = cola, active = true, id_parent = null, id_user = user.id }; //Guardo los datos a nivel de mesa var mesa = db.Mesas.Single(m => m.id == contacto.IdMesa); mesa.participacion = valor; mesa.lastContact = DateTime.Now; mesa.nextContact = newDate; mesa.abierta = true; //Proyeccion de resutados a centro var centro = mesa.Centro; var mesasActivas = centro.Mesas1.Where(m => m.participacion != 0).ToArray(); var votosRegistrados = mesasActivas.Sum(m => m.participacion); var votantesEnMesa = mesasActivas.Sum(m => m.votantes); var proyeccionCentro = centro.votantes * votosRegistrados / votantesEnMesa; centro.lastParticipacionContact = DateTime.Now; centro.participacionContada = votosRegistrados; centro.participacionProyectada = proyeccionCentro; //Participacion oldParticipacion = db.Participacions.Single(p => p.id == contacto.LastParticipacionId); //oldParticipacion.active = false; db.Participacions.AddObject(newParticipacion); IQueryable <ParticipacionAlerta> alertas = from a in db.ParticipacionAlertas where a.activa && !a.Alerta.blocking && a.id_mesa == contacto.IdMesa select a; foreach (ParticipacionAlerta a in alertas) { a.activa = false; } db.SaveChanges(); return(new JavaScriptSerializer().Serialize("")); }