private void IncluirParticipantesEnTrama(ref Trama trama, VistaParticipantesTramas vistaParticipantes) { ParticipantesTrama nuevoParticipante; if (trama.TipoTrama == TipoTrama.Enfrentada) { var grupos = Enum.GetValues(typeof(TipoEquipo)).Cast<TipoEquipo>(); foreach (var grupo in grupos) { if ((int)grupo < vistaParticipantes.GrupoParticipantesIds.Length) { foreach (string participante in vistaParticipantes.GrupoParticipantesIds[(int)grupo]) { nuevoParticipante = new ParticipantesTrama(); nuevoParticipante.PersonajeId = Convert.ToInt32(participante); nuevoParticipante.TramaId = trama.TramaId; nuevoParticipante.Equipo = grupo; trama.Participantes.Add(nuevoParticipante); } } } } else { foreach (string participante in vistaParticipantes.ParticipantesIds) { nuevoParticipante = new ParticipantesTrama(); nuevoParticipante.PersonajeId = Convert.ToInt32(participante); nuevoParticipante.TramaId = trama.TramaId; nuevoParticipante.Equipo = TipoEquipo.A; trama.Participantes.Add(nuevoParticipante); } } }
public async Task<IViewComponentResult> InvokeAsync(int tramaId, TipoTrama tipoTrama) { var participantes = await _servicioTramas.GetParticipantesTrama(tramaId); var personajes = await _servicioPersonajes.GetPersonajesJugadores(); VistaParticipantesTramas nuevaVista = new VistaParticipantesTramas(); nuevaVista.TipoTrama = tipoTrama; if (tipoTrama == TipoTrama.Enfrentada) { var grupos = Enum.GetValues(typeof(TipoEquipo)).Cast<TipoEquipo>(); foreach (var grupo in grupos) { nuevaVista.GrupoParticipantes[(int)grupo] = personajes.Select(u => new SelectListItem { Value = u.PersonajeId.ToString(), Text = u.Nombre, Selected = (participantes.Where(p => p.PersonajeId == u.PersonajeId && p.Equipo == grupo).Count() > 0) }).ToList(); } } else { nuevaVista.Participantes = personajes.Select(u => new SelectListItem { Value = u.PersonajeId.ToString(), Text = u.Nombre, Selected = (participantes.Where(p => p.PersonajeId == u.PersonajeId).Count() > 0) }).ToList(); } return View(nuevaVista); }
public async Task CrearTrama(Trama trama, VistaParticipantesTramas vistaParticipantes) { trama.Participantes = new List<ParticipantesTrama>(); IncluirParticipantesEnTrama(ref trama, vistaParticipantes); //guardar cambios Actualizar(trama); await ConfirmarCambios(); }
public async Task<IActionResult> Create(Trama trama, VistaParticipantesTramas vistaParticipantes) { if (ModelState.IsValid) { await _servicioTramas.CrearTrama(trama, vistaParticipantes); return RedirectToAction("Edit", new { id = trama.TramaId }); } return View(trama); }
public async Task ActualizarTrama(Trama trama, VistaParticipantesTramas vistaParticipantes) { //primero, borrar los participantes previos trama.Participantes = await GetParticipantesTrama(trama.TramaId); trama.Participantes.ForEach(p => Eliminar(p)); Actualizar(trama); await ConfirmarCambios(); //incluir nuevos participantes trama.Participantes = new List<ParticipantesTrama>(); IncluirParticipantesEnTrama(ref trama, vistaParticipantes); //guardar cambios Actualizar(trama); await ConfirmarCambios(); }
public async Task<IActionResult> Edit(Trama trama, VistaParticipantesTramas vistaParticipantes) { if (ModelState.IsValid) { await _servicioTramas.ActualizarTrama(trama, vistaParticipantes); ViewBag.MensajeExito = $"Trama guardada"; return View(await DevolverVistaEdicionTrama(trama.TramaId)); } return RedirectToAction("Edit", new { id = trama.TramaId }); }