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

            //guardar cambios
            Actualizar(trama);
            await ConfirmarCambios();
        }
示例#3
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);
 }
示例#4
0
 public async Task<IViewComponentResult> InvokeAsync(int? plantillaTramaId, Trama trama)
 {
     if (plantillaTramaId.HasValue)
     {
         Trama nuevaTrama = await _servicioTramas.GetNuevaTrama(plantillaTramaId);
         return View(nuevaTrama);
     }
     else
     {
         return View(trama);
     }
     
 }
示例#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();

        }
示例#6
0
 public async Task<Trama> GetNuevaTrama(int? plantillaId)
 {
     Trama trama = new Trama();
     var atributos = await _contexto.Atributos.ToListAsync();
     if (plantillaId.HasValue)
     {                
         var plantilla = await _contexto.PlantillasTrama.Include(p => p.Atributos)
             .Where(p => p.PlantillaTramaId == plantillaId).FirstOrDefaultAsync();
         if (plantilla != null)
         {
             trama = _mapper.Map<Trama>(plantilla);
             trama.PlantillaId = plantillaId.Value;                    
         }
                      
     }
     if (trama.Atributos.Count == 0)
     {                
         foreach (Atributo atributo in atributos)
         {
             trama.Atributos.Add(new AtributoTrama()
             { Multiplicador = 0, TramaId = trama.TramaId, AtributoId = atributo.AtributoId, Atributo = atributo });
         }
     }            
     return trama;
 }
示例#7
0
        //public async Task<List<Trama>> GetTramasPersonaje(int personajeId)
        //{
        //    return await (from trama in _contexto.Tramas join participantes in _contexto.ParticipantesTrama on trama.TramaId  equals participantes.TramaId
        //                 where participantes.PersonajeId == personajeId select trama).ToListAsync();
        //}

        public void IncluirTrama(Trama trama)
        {
            _contexto.Tramas.Add(trama);
        }
示例#8
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 });
 }