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 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<IViewComponentResult> InvokeAsync(int? plantillaTramaId, Trama trama) { if (plantillaTramaId.HasValue) { Trama nuevaTrama = await _servicioTramas.GetNuevaTrama(plantillaTramaId); return View(nuevaTrama); } else { 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<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; }
//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); }
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 }); }