Beispiel #1
0
 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);
        }
Beispiel #3
0
        public async Task CrearTrama(Trama trama, VistaParticipantesTramas vistaParticipantes)
        {
            trama.Participantes = new List<ParticipantesTrama>();
            IncluirParticipantesEnTrama(ref trama, vistaParticipantes);

            //guardar cambios
            Actualizar(trama);
            await ConfirmarCambios();
        }
Beispiel #4
0
 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);
 }
Beispiel #5
0
        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();

        }
Beispiel #6
0
 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 });
 }